Hardcore Doom Wiki
hardcoredoom_en
https://hardcoredoom.wiki.gg/
MediaWiki 1.43.5
first-letter
Media
Special
Talk
User
User talk
Meta
Meta talk
File
File talk
MediaWiki
MediaWiki talk
Template
Template talk
Help
Help talk
Category
Category talk
Module
Module talk
Main Page
0
1
1
2025-11-02T00:43:30Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#redirect [[Hardcore Doom Wiki]]
98d853ef150e871278a88f942ec06fd59590b7ca
2
1
2025-11-02T00:43:31Z
ARTIFICER
564804
Protected "[[Main Page]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite))
wikitext
text/x-wiki
#redirect [[Hardcore Doom Wiki]]
98d853ef150e871278a88f942ec06fd59590b7ca
Hardcore Doom Wiki
0
2
3
2025-11-02T00:43:31Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<!-- Hello and welcome to wiki.gg! This page is built via our IMProved Main Page (IMP) framework. If you are familiar with CSS grid areas, that's what you're defining here! But if you don't know any CSS that's ok!
👀 RULE 1: the same keyword represents the same section & can span multiple cells
👀 RULE 2: Each box in each layout must be a CONTIGUOUS RECTANGLE of any dimensions (most likely one of: 1x1, 1x2, 2x1, 2x2, 1x3, 3x1, 3x2, 2x3)
👀 RULE 3: This page defines LAYOUT ONLY. To edit the content, please use the links provided for you after saving/previewing your page.
👀 RULE 4: If you want to RENAME or ADD a box, (1) add a new section to the grid layout below (all three breakpoints!) and then (2) save or preview this page and then (3) click "Create this box"
-->{{Main page
|desktop=
<!-- for WIDE SCREENS -->
<!-- 👀 keep this at 3 columns, but you can otherwise rearrange as desired -->
welcome welcome welcome
about pages pages
contribute contribute external
<!-- end WIDE SCREEN layout -->
|tablet=
<!-- for TABLET SCREENS -->
<!-- 👀 keep this at 2 columns, but you can otherwise rearrange as desired -->
welcome welcome
about pages
contribute external
<!-- end TABLET SCREEN layout -->
|mobile=
<!-- for MOBILE DEVICES -->
<!-- 👀 keep this at 1 column, but you can otherwise rearrange as desired -->
welcome
about
pages
external
contribute
<!-- end MOBILE DEVICE layout -->
}}
{{#description2:Welcome to the {{SITENAME}}, a collaborative wiki resource that is open for anyone to edit!}} <!-- this is a short description of your wiki, which will appear in embeds in Google search results, Discord links, etc. -->
c5d4351377806d884e84bc34774f85fd4a425e0a
4
3
2025-11-02T00:43:31Z
ARTIFICER
564804
Protected "[[Hardcore Doom Wiki]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<!-- Hello and welcome to wiki.gg! This page is built via our IMProved Main Page (IMP) framework. If you are familiar with CSS grid areas, that's what you're defining here! But if you don't know any CSS that's ok!
👀 RULE 1: the same keyword represents the same section & can span multiple cells
👀 RULE 2: Each box in each layout must be a CONTIGUOUS RECTANGLE of any dimensions (most likely one of: 1x1, 1x2, 2x1, 2x2, 1x3, 3x1, 3x2, 2x3)
👀 RULE 3: This page defines LAYOUT ONLY. To edit the content, please use the links provided for you after saving/previewing your page.
👀 RULE 4: If you want to RENAME or ADD a box, (1) add a new section to the grid layout below (all three breakpoints!) and then (2) save or preview this page and then (3) click "Create this box"
-->{{Main page
|desktop=
<!-- for WIDE SCREENS -->
<!-- 👀 keep this at 3 columns, but you can otherwise rearrange as desired -->
welcome welcome welcome
about pages pages
contribute contribute external
<!-- end WIDE SCREEN layout -->
|tablet=
<!-- for TABLET SCREENS -->
<!-- 👀 keep this at 2 columns, but you can otherwise rearrange as desired -->
welcome welcome
about pages
contribute external
<!-- end TABLET SCREEN layout -->
|mobile=
<!-- for MOBILE DEVICES -->
<!-- 👀 keep this at 1 column, but you can otherwise rearrange as desired -->
welcome
about
pages
external
contribute
<!-- end MOBILE DEVICE layout -->
}}
{{#description2:Welcome to the {{SITENAME}}, a collaborative wiki resource that is open for anyone to edit!}} <!-- this is a short description of your wiki, which will appear in embeds in Google search results, Discord links, etc. -->
c5d4351377806d884e84bc34774f85fd4a425e0a
Example character
0
3
5
2025-11-02T00:43:31Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
{{Example character infobox
|title=Dragon
|image=Example character image.png
|Region=Shurima
|Element=Fire
|Attack=51
|HP=85
|Armor=34
|Attack Speed=78
}}
Please note, this is NOT content related to {{SITENAME}}. It is an example page for the demonstration of [[support:DRUID infoboxes|DRUID infoboxes]]. Please delete this page at your earliest convenience! To edit how the infobox works, please see {{tl|Example character infobox}}.
== About ==
The '''Example Character''' is a very cool character found in the Default Loadout Wiki. It is a dragon that can camouflage itself as a flower due to inventive and scientific reasons, and not because the artist is bad at drawing dragons.
== Combat ==
The Example Character has several attacks, including:
* Disguise Self As Flower
* Flame Breath
* Sneak Attack
* Fireball
* Dawizard
== Dragon Riding ==
If the player tames the Example Character, they can perform several Dragon Riding stunts. See [[Dragon Riding]] for more information.
== Levels ==
Example Character can be found in the following levels:
* [[Introduction]]
* [[Level 1]]
* [[Level 3]]
* [[Level 5]]
* [[Bonus Content 6]]
[[Category:Characters]]
5feed3ead005cb5ca4b2ecf1f3745925d2b8b41d
Hardcore Doom Wiki/welcome
0
4
6
2025-11-02T00:43:32Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
{{Main page box/start
| title = Welcome to the {{SITENAME}}!
}}
We are currently maintaining [[Special:AllPages|{{NUMBEROFARTICLES}} articles]]. Please feel free to contribute by creating new articles or expanding existing ones.
{{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line -->
96df981ef23fca9434d1586228cab8a51e0fdc0a
7
6
2025-11-02T00:43:32Z
ARTIFICER
564804
Protected "[[Hardcore Doom Wiki/welcome]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Main page box/start
| title = Welcome to the {{SITENAME}}!
}}
We are currently maintaining [[Special:AllPages|{{NUMBEROFARTICLES}} articles]]. Please feel free to contribute by creating new articles or expanding existing ones.
{{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line -->
96df981ef23fca9434d1586228cab8a51e0fdc0a
Hardcore Doom Wiki/pages
0
5
8
2025-11-02T00:43:32Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
{{Main page box/start
| title = Useful wiki pages
| class = centered-content
}}
<div class="mp-links columns-2">
* {{MP link| Important page here |image=Wiki.gg logo-pink.svg |size=92px }}
* {{MP link| Random page |link=Special:Random }}
* {{MP link| Example character |link=Example character |image=Example_character_image.png |size=92px }}
* {{MP link| Example character infobox |link=Template:Example character infobox |image=Example_character_image.png |size=92px }}
</div>
{{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line -->
ff903789d455ece7d683710b69c443a5904780b8
9
8
2025-11-02T00:43:33Z
ARTIFICER
564804
Protected "[[Hardcore Doom Wiki/pages]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Main page box/start
| title = Useful wiki pages
| class = centered-content
}}
<div class="mp-links columns-2">
* {{MP link| Important page here |image=Wiki.gg logo-pink.svg |size=92px }}
* {{MP link| Random page |link=Special:Random }}
* {{MP link| Example character |link=Example character |image=Example_character_image.png |size=92px }}
* {{MP link| Example character infobox |link=Template:Example character infobox |image=Example_character_image.png |size=92px }}
</div>
{{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line -->
ff903789d455ece7d683710b69c443a5904780b8
Hardcore Doom Wiki/about
0
6
10
2025-11-02T00:43:33Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
{{Main page box/start
| title = About Hardcore Doom
}}
This is an example main page. You can redesign it however you want, or you can keep the layout the same but change the contents (e.g. this part should talk about your game). Take a look at some other wiki.gg wikis for inspiration!
<div style="text-align:right">[[Hardcore Doom|Read more...]]</div>
{{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line -->
b6c460a262db312e8788d5b1132a24c368a332d0
11
10
2025-11-02T00:43:33Z
ARTIFICER
564804
Protected "[[Hardcore Doom Wiki/about]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Main page box/start
| title = About Hardcore Doom
}}
This is an example main page. You can redesign it however you want, or you can keep the layout the same but change the contents (e.g. this part should talk about your game). Take a look at some other wiki.gg wikis for inspiration!
<div style="text-align:right">[[Hardcore Doom|Read more...]]</div>
{{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line -->
b6c460a262db312e8788d5b1132a24c368a332d0
Hardcore Doom Wiki/contribute
0
7
12
2025-11-02T00:43:34Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
{{Main page box/start
| title = Contribute to the wiki
}}
{{SITENAME}} is a collaborative wiki resource that is open for anyone to edit. You don't need special permission beyond [[Special:UserLogin/signup|registering]] an account to edit most pages, and your contributions can grow the wiki and help other players.
; Adding content
:* If you are unsure of what to do or how to create a page, search for a few articles on the same topic and see what they look like. You can always view the source code in a wiki and learn from what others have done.
:* An edit doesn't have to be massive; if you feel you don't want to create whole articles, then just fixing spelling errors and broken links is enough.
:* [[Special:UserLogin/signup|Register]] to edit and track your contributions.
{{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line -->
8b79debc73480ec2b12cb5e39723b94532fd44bd
13
12
2025-11-02T00:43:34Z
ARTIFICER
564804
Protected "[[Hardcore Doom Wiki/contribute]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Main page box/start
| title = Contribute to the wiki
}}
{{SITENAME}} is a collaborative wiki resource that is open for anyone to edit. You don't need special permission beyond [[Special:UserLogin/signup|registering]] an account to edit most pages, and your contributions can grow the wiki and help other players.
; Adding content
:* If you are unsure of what to do or how to create a page, search for a few articles on the same topic and see what they look like. You can always view the source code in a wiki and learn from what others have done.
:* An edit doesn't have to be massive; if you feel you don't want to create whole articles, then just fixing spelling errors and broken links is enough.
:* [[Special:UserLogin/signup|Register]] to edit and track your contributions.
{{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line -->
8b79debc73480ec2b12cb5e39723b94532fd44bd
Hardcore Doom Wiki/external
0
8
14
2025-11-02T00:43:34Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
{{Main page box/start
| title = External links
}}
<div class="mp-links columns-2">
* {{MP link| Official site |link=https://wiki.gg }}
* {{MP link| Discord |link=https://discord.gg/rTnST57tuW |image=Discord.svg |size=64x64px }}
* {{MP link| Bluesky |link=https://bsky.app/profile/wiki.gg |image=Bluesky.svg |size=64x64px }}
* {{MP link| indie.io |link=https://www.indie.io/ |image=indie.io.svg |size=64x64px }}
</div>
{{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line -->
b7fa73b602a5aecb89c1bd4cd7f97a97a9c8d884
15
14
2025-11-02T00:43:34Z
ARTIFICER
564804
Protected "[[Hardcore Doom Wiki/external]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Main page box/start
| title = External links
}}
<div class="mp-links columns-2">
* {{MP link| Official site |link=https://wiki.gg }}
* {{MP link| Discord |link=https://discord.gg/rTnST57tuW |image=Discord.svg |size=64x64px }}
* {{MP link| Bluesky |link=https://bsky.app/profile/wiki.gg |image=Bluesky.svg |size=64x64px }}
* {{MP link| indie.io |link=https://www.indie.io/ |image=indie.io.svg |size=64x64px }}
</div>
{{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line -->
b7fa73b602a5aecb89c1bd4cd7f97a97a9c8d884
Meta:Copyrights
4
9
16
2025-11-02T00:43:35Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<!--''[[GAME]]'' content and materials are the intellectual property of their respective owners.
-->Content that you make available on {{SITENAME}} is licensed by you to us under our [{{int:wikigg-tos-url}} Terms of Service]. Do not make content available on {{SITENAME}} where you do not have the necessary rights to grant this license.
All textual and graphical content on {{SITENAME}} that we may lawfully license is licensed to you under the [https://creativecommons.org/licenses/by-sa/4.0 Creative Commons Attribution-ShareAlike 4.0] license.
[[Category:Legal notices]]
a5c705cf276359aef94d426ee75d18bbf1e361ac
17
16
2025-11-02T00:43:35Z
ARTIFICER
564804
Protected "[[Meta:Copyrights]]" ([Edit=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<!--''[[GAME]]'' content and materials are the intellectual property of their respective owners.
-->Content that you make available on {{SITENAME}} is licensed by you to us under our [{{int:wikigg-tos-url}} Terms of Service]. Do not make content available on {{SITENAME}} where you do not have the necessary rights to grant this license.
All textual and graphical content on {{SITENAME}} that we may lawfully license is licensed to you under the [https://creativecommons.org/licenses/by-sa/4.0 Creative Commons Attribution-ShareAlike 4.0] license.
[[Category:Legal notices]]
a5c705cf276359aef94d426ee75d18bbf1e361ac
Module:Infobox
828
10
18
2025-11-02T00:43:36Z
ARTIFICER
564804
Importing default loadout
Scribunto
text/plain
-- version 0.1.9
--------------------------------------
-- User settings, you can modify these
--------------------------------------
-- if you want to not always use divs in your wiki (as opposed to tables), you can change this default
-- just remember to change it back each time you update from the main "branch" on the support wiki!
-- you can also control it per infobox with `|useDivs=yes` or `|useDivs=no`
local USE_DIVS = true -- `false` or `true`
-- default value to show if a param is missing in some but not all tabs.
-- set to `nil` (not in quotes) to remove such rows altogether in the tabs where they're missing
local TABBED_NONEXIST = nil -- `''` or `nil` or `'N/A'` etc. Don't put nil in quotes.
---------------------------------------------------------------------------
-- Do not modify anything below this line unless you know what you're doing
---------------------------------------------------------------------------
local h = {}
local p = {}
local hooks = {}
function p.arraymap(frame)
-- a lua implementation of Page Forms' arraymap
local args = h.overwrite()
local items = h.split(args[1], args[2] or ',')
for i, item in ipairs(items) do
items[i] = args[4]:gsub(args[3], item)
end
return table.concat(items, args[5] or ',')
end
function p.preprocess(frame)
return frame:preprocess(frame.args[1] or frame:getParent().args[1])
end
function p.main(frame)
h.registerHooks()
h.increment()
local args = h.overwrite()
local sep = args.sep or ','
h.castArgs(args, sep)
if h.castBool(args.setmainimage or 'yes') then
h.setMainImage(args.images[1])
end
-- suggest to use HIDDENCAT here; will be used for maintenance & gadget imports
return h.makeInfobox(args, sep), '[[Category:Pages with DRUID infoboxes]]'
end
function h.registerHooks()
if not mw.title.new('Module:Infobox/Hooks').exists then return end
hooks = require('Module:Infobox/Hooks')
end
function h.runHook(key, ...)
if hooks[key] then
hooks[key](...)
end
end
function h.increment()
-- optional use of VariablesLua for better compatibility
local VariablesLua = mw.ext.VariablesLua
if VariablesLua ~= nil then
h.counter = VariablesLua.var('DRUID_INFOBOX_ID', 0) + 1
VariablesLua.vardefine('DRUID_INFOBOX_ID', h.counter)
return
end
local res
-- try to fall back to normal Variables
res, h.counter = pcall(
function()
return mw.getCurrentFrame():callParserFunction('#var', {'DRUID_INFOBOX_ID', 0}) + 1
end
)
if res then
mw.getCurrentFrame():callParserFunction('#vardefine', {'DRUID_INFOBOX_ID', h.counter})
else
-- else use a random number so at least there's some unique id
h.counter = math.random(100000000000000000) -- random integer
end
end
function h.castArgs(args, sep)
h.runHook('onCastArgsStart', args, sep, args.kind)
args.tabs = h.split(args.tabs or args.image_labels, sep)
args.images = h.getImages(args, sep)
args.sections = h.split(args.sections, sep)
for _, section in ipairs(args.sections) do
if h.castBool(args[section .. '_isdata']) then
args[section .. 'Data'] = args[section]
args[section] = section .. 'Data'
args[section .. 'Data_nolabel'] = 'true' -- will be cast later
end
args[section] = h.split(args[section], sep)
args[section .. '_tabs'] = h.split(args[section .. '_tabs'], sep)
if #args.tabs > 0 and #args[section .. '_tabs'] > 0 then
error(('You cannot specify |tabs= and |%s= at the same time, please pick one'):format(section .. '_tabs'))
end
end
if args.useDivs then
USE_DIVS = h.castBool(args.useDivs)
end
-- this would be in the outer scope, but we're hiding it
h.entityType = USE_DIVS and 'div' or 'table' -- key of h.htmlEntities
h.runHook('onCastArgsEnd', args, sep, args.kind)
h.focusTab(args)
end
function h.getImages(args, sep)
if args.image and not args.images then
args.images = args.image
end
if args.images then
return h.split(args.images, sep)
end
if not args.tabs then return {} end
local ret = {}
for _, key in ipairs(args.tabs) do
if args[key .. '_image'] then
ret[#ret+1] = args[key .. '_image']
end
end
return ret
end
function h.setMainImage(file)
if h.counter > 1 then return end
if not file then return end
local fileText = file:gsub('.-:', '')
fileText = fileText:gsub('^([^|%]]+).*', '%1')
-- setmainimage is guaranteed to exist on wiki.gg but may not exist on other wikis
-- it's not a crucial piece of functionality so we'll fail silently if it doesn't exist
pcall(function() mw.getCurrentFrame():callParserFunction{
name = '#setmainimage',
args = { fileText },
} end)
end
function h.focusTab(args)
local hasFocusedTab = false
if not args.tabs[1] then return end
for i, tab in ipairs(args.tabs) do
if h.castBool(args[tab .. '_focused']) then
hasFocusedTab = true
args[tab .. '_focused'] = true -- cast to bool
else
args[tab .. '_focused'] = false
end
end
if hasFocusedTab then return end
args[args.tabs[1] .. '_focused'] = true
end
function h.makeInfobox(args, sep)
local out = mw.html.create(h.getTag('container'))
:addClass('druid-infobox')
:addClass('druid-container')
:addClass('noexcerpt')
:addClass(args.class) -- warning: class can be nil, don't concat anything
:attr('id', args.id or ('druid-container-' .. h.counter))
h.runHook('onMakeOutputStart', out, args)
if args.kind then out:addClass('druid-container-' .. h.escape(args.kind)) end
h.printTitle(out, args)
h.printImages(out, args.images, args)
for _, section in ipairs(args.sections) do
-- cannot begin tagging here because we don't know if any applicable args are present
local cols = args[section .. '_columns']
local makeSection = cols and h.makeGridSection or h.makeSection
out:node(makeSection(section, args[section], args, tonumber(cols)))
end
h.runHook('onMakeOutputEnd', out, args)
-- category for gadget loading
return out, '[[Category:Pages with DRUID infoboxes]]'
end
function h.printTitle(out, args)
local tabs = args.tabs
if not tabs or #tabs == 0 then
h.printSimpleTitle(out, args)
return
end
if not h.hasComplexData('title', tabs, args) then
h.printSimpleTitle(out, args)
return
end
local node = h.printTitleWrapper(out)
h.printTabbedDataItem(node, 'title', tabs, args)
end
function h.printSimpleTitle(out, args)
if args.title then
local node = h.printTitleWrapper(out)
node:wikitext(args.title)
end
end
function h.printTitleWrapper(out)
return out:tag(h.getTag('titleOuter'))
:tag(h.getTag('titleInner'))
:addClass('druid-title')
:attr('colspan', 2)
end
function h.printTabbedDataItem(node, item, tabs, args)
-- hasData isn't used in the title case but we will need to track this
-- when we're printing section data later on
-- so we'll just track it always
local hasData = false
for i, label in ipairs(tabs) do
local div = node:tag('div')
:addClass('druid-toggleable-data')
:addClass('druid-toggleable')
:attr('data-druid', h.counter .. '-' .. i)
:attr('data-druid-tab-key', label)
if h.getTabbedContent(args, label, item) then
hasData = true
div:wikitext('\n\n' .. h.getTabbedContent(args, label, item))
div:addClass('druid-toggleable-data-nonempty')
else
div:addClass('druid-toggleable-data-empty')
end
if args[label .. '_focused'] then div:addClass('focused') end
end
return hasData
end
function h.printImages(out, images, args)
if #images == 0 and #args.tabs == 0 then return end
-- burden is on the user to format this as an image. this should be done in the infobox template,
-- with something like |image={{#if:{{{image|}}}|[[File:{{{image|}}}{{!}}300px{{!}}link=]]}}
local td = out:tag(h.getTag('section'))
:addClass('druid-section-container')
:tag(h.getTag('cell'))
:attr('colspan', 2)
local tabs = args.tabs
local tabTexts = h.getImageTabTexts(tabs, images, args)
h.printTabs(td, tabs, tabTexts, false, args)
if #images == 0 then return end
if #images == 1 then
td:addClass('druid-main-image')
:wikitext(images[1])
if args.caption then
td:tag('div')
:addClass('druid-main-image-caption')
:wikitext(args.caption)
end
return
end
td:addClass('druid-main-images')
local imagesContainer = td:tag('div')
:addClass('druid-main-images-files')
for i, image in ipairs(images) do
local container = imagesContainer:tag('div')
:addClass('druid-main-images-file')
:addClass('druid-toggleable')
:attr('data-druid', h.counter .. '-' .. i)
:wikitext(image)
:attr('data-druid-tab-key', tabs[i])
local labelDisplay
local labelKey = tabs[i]
if labelKey then
labelDisplay = args[labelKey .. '_label'] or labelKey
else
labelDisplay = '[[Category:Infoboxes missing image labels]]Image ' .. i
end
local caption = args[labelDisplay .. '_caption'] or args[labelKey .. '_caption'] or args.caption
if caption then
container:tag('div')
:addClass('druid-main-images-caption')
:wikitext(caption)
end
if args[labelKey .. '_focused'] then
container:addClass('focused')
end
end
end
function h.getImageTabTexts(tabs, images, args)
if #tabs == 0 and #images <= 1 then return {} end
local texts = {}
local i = 1
while images[i] or tabs[i] do
if tabs[i] then
texts[i] = args[tabs[i] .. '_label'] or tabs[i]
else
texts[i] = '[[Category:Infoboxes missing image labels]]Image ' .. i
end
i = i + 1
end
return texts
end
function h.printTabs(td, tabs, texts, isSection, args)
if #texts == 0 then return end
local container = td:tag('div')
:addClass('druid-main-images-labels')
:addClass('druid-tabs')
if isSection then
container:addClass('druid-section-tabs')
end
for i, item in ipairs(tabs) do
local label = container:tag('div')
:addClass('druid-main-images-label')
:addClass('druid-tab')
:addClass('druid-toggleable')
:attr('data-druid', h.counter .. '-' .. i)
:wikitext(texts[i])
:attr('data-druid-tab-key', item)
if isSection then
label:addClass('druid-section-tab')
else
label:addClass('druid-title-tab')
end
if args[item .. '_focused'] then
label:addClass('focused')
end
-- this can be null, don't concat anything here
label:addClass(args[item .. '_class'])
end
end
function h.makeGridSection(section, sectionFields, args, numCols)
local numItems = h.countItems(sectionFields, section, args)
if numItems == 0 then return end
local node = mw.html.create(h.getTag('section'))
:addClass('druid-section-container')
h.printSectionHeader(node, section, args)
h.printSectionTabs(node, section, args)
local tr = node:tag(h.getTag('row'))
:attr('data-druid-section-row', h.escape(section))
if args[section .. '_collapsed'] then
tr:addClass('druid-collapsed')
end
local grid = tr:tag(h.getTag('cell'))
:attr('colspan', 2)
:addClass('druid-grid-section')
:addClass('druid-grid-section-' .. h.escape(section))
:addClass(args[section .. '_class']) -- warning: class can be nil, don't concat anything
:tag('div')
:addClass('druid-grid')
local row, col, i = 1, 1, 1
local sizeOfLastRow = numItems % numCols
local lcm = h.getNumGridCols(numItems, sizeOfLastRow, numCols)
grid:css('grid-template-columns', ('repeat(%s, 1fr)'):format(lcm))
local size = lcm / numCols
for _, item in ipairs(sectionFields) do
local node = mw.html.create('div')
local shouldPrint = h.printData(node, item, section, args)
if shouldPrint then
if i == numItems - sizeOfLastRow + 1 then
size = lcm / sizeOfLastRow
end
i = i + 1
local gStart = (col - 1) * size + 1
local gEnd = (col) * size + 1
local itemContainer = grid:tag('div')
:addClass('druid-grid-item')
:addClass('druid-grid-item-' .. h.escape(item))
:addClass(args[item .. '_class']) -- warning: class can be nil, don't concat anything
:css('grid-column', ('%s / %s'):format(gStart, gEnd))
:css('grid-row', row)
if not h.castBool(args[item .. '_nolabel']) then
h.printLabel(itemContainer:tag('div'), item, args)
end
itemContainer:node(node)
if col == numCols then
row = row + 1
col = 1
else
col = col + 1
end
end
end
return node
end
function h.makeSection(section, sectionFields, args)
if section == '' then return end -- bruteforce fix for trailing commas
local shouldPrint = false
local container = mw.html.create(h.getTag('section'))
:addClass('druid-section-container')
:addClass(args[section .. '_class']) -- warning: class can be nil, don't concat anything
h.printSectionHeader(container, section, args)
h.printSectionTabs(container, section, args)
for _, item in ipairs(sectionFields) do
local node = mw.html.create(h.getTag('cell'))
local shouldPrintItem = h.printData(node, item, section, args)
if shouldPrintItem then
shouldPrint = true
local tr = container:tag(h.getTag('row'))
:addClass('druid-row')
:addClass('druid-row-' .. h.escape(item))
:addClass(args[item .. '_class']) -- warning: class can be nil, don't concat anything
:attr('data-druid-section-row', h.escape(section))
if args[section .. '_collapsed'] then
tr:addClass('druid-collapsed')
end
if h.castBool(args[item .. '_wide']) or h.castBool(args[item .. '_nolabel']) then
node
:attr('colspan', 2)
:addClass('druid-data-wide')
else
h.printLabel(tr:tag(h.getTag('label')), item, args)
end
tr:node(node)
end
end
if not shouldPrint then return nil end
return container
end
function h.countItems(sectionFields, section, args)
local numItems = 0
for _, v in ipairs(sectionFields) do
-- we aren't actually printing here, but we're finding out if we should print anything
-- because we need the count of columns before we print anything in grid data
if h.printData(mw.html.create(), v, section, args) then
numItems = numItems + 1
end
end
return numItems
end
function h.getNumGridCols(numItems, sizeOfLastRow, numCols)
if not numCols then return numItems, 1 end
if numItems < numCols then return numItems, 1 end
if sizeOfLastRow == 0 then
return numCols, 1
end
local a, b = sizeOfLastRow, numCols
while b ~= 0 do
a, b = b, a % b
end
local lcm = sizeOfLastRow * numCols / a
return lcm
end
function h.printLabel(node, item, args)
return node
:addClass('druid-label')
:addClass('druid-label-' .. h.escape(item))
:wikitext(args[item .. '_display'] or args[item .. '_label'] or item)
end
function h.printData(node, item, section, args)
-- prints data to the node
-- and also returns whether the item is nonempty or not
local hasData = false
local sectionTabs = args[section .. '_tabs']
local tabs = args.tabs
if sectionTabs and #sectionTabs > 0 then
tabs = sectionTabs
end
if not tabs or #tabs == 0 then
return h.printSimpleData(node, item, args)
end
if not h.hasComplexData(item, tabs, args) then
return h.printSimpleData(node, item, args)
end
hasData = hasData or h.printTabbedDataItem(node, item, tabs, args)
if hasData then
node:addClass('druid-data')
end
return hasData
end
function h.getTabbedContent(args, label, item)
return args[label .. '_' .. item] or args[item] or TABBED_NONEXIST
end
function h.printSimpleData(node, item, args)
if args[item] and type(args[item]) ~= 'string' then
error(("Invalid use of field %s as both a section and a data value"):format(item))
end
if not args[item] then return false end
node:addClass('druid-data')
:addClass('druid-data-' .. h.escape(item))
:addClass('druid-data-nonempty')
:wikitext('\n\n' .. args[item])
return true
end
function h.hasComplexData(item, tabs, args)
for _, v in ipairs(tabs) do
if args[v .. '_' .. item] then return true end
end
return false
end
function h.printSectionHeader(node, section, args)
if h.castBool(args[section .. '_nolabel']) then return end
local tr = node:tag(h.getTag('row'))
:attr('data-druid-section', h.escape(section))
local th = tr:tag(h.getTag('sectionTitle'))
:attr('colspan', 2)
:addClass('druid-section')
:addClass('druid-section-' .. h.escape(section))
if args[section .. '_collapsible'] or args[section .. '_collapsed'] then
tr:addClass('druid-collapsible')
if args[section .. '_collapsed'] then
tr:addClass('druid-collapsible-collapsed')
end
end
local emptySections = {}
for _, label in ipairs(args.tabs) do
local hasLabel = false
for _, item in ipairs(args[section] or {}) do
if h.getTabbedContent(args, label, item) then
hasLabel = true
end
end
if not hasLabel then emptySections[label] = true end
end
if not next(emptySections) then
th:wikitext(args[section .. '_label'] or section)
return
end
for i, label in ipairs(args.tabs) do
local div = th:tag('div')
:addClass('druid-toggleable-heading')
:addClass('druid-toggleable')
:attr('data-druid', h.counter .. '-' .. i)
:wikitext(args[section .. '_label'] or section)
-- we are going to print the section content even in empty nodes
-- for compatibility with browsers without :has, where hiding empty rows won't happen
if emptySections[label] then
div:addClass('druid-toggleable-heading-empty')
end
if args[label .. '_focused'] then
div:addClass('focused')
end
end
end
function h.printSectionTabs(node, section, args)
local tabs = args[section .. '_tabs']
if not tabs or #tabs == 0 then return end
local tr = node:tag(h.getTag('sectionTabsOuter'))
:attr('data-druid-section', h.escape(section))
local th = tr:tag(h.getTag('sectionTabs'))
:attr('colspan', 2)
:addClass('druid-section-tabs')
:addClass('druid-section-tabs-' .. h.escape(section))
local texts = {}
for i, item in ipairs(tabs) do
texts[i] = args[item .. '_label'] or item
end
h.printTabs(th, tabs, texts, true, args)
end
----------------------------
-- general utility functions
----------------------------
function h.overwrite()
-- this is a generic utility function that collects args from the invoke call & the parent template.
-- normally, you merge args with parent template overwriting the invoke call, but
-- since we'll be putting markup/formatting into our invoke call,
-- we actually want to overwrite what the user sent.
local f = mw.getCurrentFrame()
local origArgs = f.args
local parentArgs = f:getParent().args
local args = {}
for k, v in pairs(parentArgs) do
v = mw.text.trim(v)
if v ~= '' then
args[k] = v
end
end
for k, v in pairs(origArgs) do
v = mw.text.trim(tostring(v))
if v ~= '' then
args[k] = v
end
end
return args
end
-- generic utility functions
-- these would normally be provided by other modules, but to make installation easy
-- I'm including everything here
function h.split(text, pattern, plain)
if not text then
return {}
end
local ret = {}
for m in h.gsplit(text, pattern, plain) do
ret[#ret+1] = m
end
return ret
end
function h.gsplit( text, pattern, plain )
if not pattern then pattern = ',' end
if not plain then
pattern = '%s*' .. pattern .. '%s*'
end
local s, l = 1, text:len()
return function ()
if s then
local e, n = text:find( pattern, s, plain )
local ret
if not e then
ret = text:sub( s )
s = nil
elseif n < e then
-- Empty separator!
ret = text:sub( s, e )
if e < l then
s = e + 1
else
s = nil
end
else
ret = e > s and text:sub( s, e - 1 ) or ''
s = n + 1
end
return ret
end
end, nil, nil
end
-- char-set of characters to escape/replace
local escapePattern = '[' -- required for pattern; do not remove.
.. ' '
.. '"'
.. "'"
.. "%?"
.. "%%"
.. "%["
.. "%]"
.. "{"
.. ']' -- required for pattern; do not remove.
function h.escape(s)
s = s:gsub(escapePattern, '')
return s
end
-- normally I would make these constants at the top of the file
-- but I don't want to mistake them with user-set constants
h.boolFalse = { ['false'] = true, ['no'] = true, [''] = true, ['0'] = true, ['nil'] = true }
function h.castBool(x)
if not x then return false end
return not h.boolFalse[tostring(x):lower()]
end
h.htmlEntities = {
table = {
container = 'table',
titleOuter = 'tr',
titleInner = 'th',
section = '',
sectionTitle = 'th',
sectionTabsOuter = 'tr',
sectionTabs = 'td',
row = 'tr',
label = 'th',
cell = 'td',
},
div = {
container = 'div',
titleOuter = 'div',
titleInner = 'div',
section = 'div',
sectionTitle = 'div',
sectionTabsOuter = 'div',
sectionTabs = 'div',
row = 'div',
label = 'div',
cell = 'div',
}
}
function h.getTag(key)
-- try not to totally fail here
return h.htmlEntities[h.entityType or 'div'][key]
end
return p
1ed7925eef01aea4a3310f76d048da1acb3ec85a
Module:Infobox/doc
828
11
19
2025-11-02T00:43:36Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
{{luadoc}}
This module enables the creation of [[support:DRUID infoboxes|DRUID infoboxes]].
0ce687b29fc5e2d6cad14853a8412fa91910000f
Module:Navbox
828
12
20
2025-11-02T00:43:37Z
ARTIFICER
564804
Importing default loadout
Scribunto
text/plain
-- version 1.2.5.1
-- config table for RANGER.
-- If you want to change the default config, DO NOT change it here,
-- please do it via the `onLoadConfig` hook in [[Module:Navbox/Hooks]].
local config = {
default_navbox_class = "navigation-not-searchable noexcerpt", -- Base value of the `class` parameter.
default_title_class = nil, -- Base value of the `title_class` parameter.
default_above_class = nil, -- Base value of the `above_class` parameter.
default_below_class = nil, -- Base value of the `below_class` parameter.
default_section_class =nil, -- Base value of the `section_class` parameter.
default_header_class = nil, -- Base value of the `header_class` parameter.
default_group_class = nil, -- Base value of the `group_class` parameter.
default_list_class = 'hlist', -- Base value of the `list_class` parameter.
default_header_state = nil, -- Base value of the `state` parameter.
editlink_hover_message_key = 'Navbox-edit-hover', -- The system message name for hover text of the edit icon.
auto_flatten_top_level = true, -- If true, when a section has only one list with no content and no corresponding group but has sublists, these sublists will be moved to top level.
-- This helps make the hierarchy of sections and content clearer.
-- An example:
-- {{navbox
-- ...
-- |header1 = Items
-- | group1.1 = Weapons
-- | list1.1 = Swords · Guns · Wands
-- | group1.2 = Armors
-- | list1.2 = Head pieces · Capes
-- |header2 = NPCs
-- | group2.1 = Town NPCs
-- | list2.1 = Guide · Witch
-- ...
-- }}
-- will be equal to:
-- {{navbox
-- ...
-- |header1 = Items
-- | group2 = Weapons
-- | list2 = Swords · Guns · Wands
-- | group3 = Armors
-- | list3 = Head pieces · Capes
-- |header5 = NPCs
-- | group6 = Town NPCs
-- | list6 = Guide · Witch
-- ...
-- }}
custom_render_handle = nil, -- usually for debugging purposes only. if set, it should be a function accept 2 parameters: `dataTree` and `args`, and return a string as module output.
}
---------------------------------------------------------------------
-- Argument alias.
local CANONICAL_NAMES = {
['titlestyle'] = 'title_style',
['listclass'] = 'list_class',
['groupstyle'] = 'group_style',
['collapsible'] = 'state',
['editlink'] = 'meta',
['editlinks'] = 'meta',
['editicon'] = 'meta',
['edit_link'] = 'meta',
['edit_links'] = 'meta',
['edit_icon'] = 'meta',
['navbar'] = 'meta',
['name'] = 'template',
['evenodd'] = 'striped',
['class'] = 'navbox_class',
['css'] = 'navbox_style',
['style'] = 'navbox_style',
['group'] = '1:group',
['list'] = '1:list',
}
local DEFAULT_ARGS = {
['meta'] = true,
}
local STATES = {
['no'] = '',
['off'] = '',
['plain'] = '',
['collapsed'] = 'mw-collapsible mw-collapsed',
['expanded'] = 'mw-collapsible',
}
local BOOL_FALSE = {
['no'] = true,
['off'] = true,
['false'] = true,
}
local STRIPED = {
['odd'] = 'striped-odd',
['swap'] = 'striped-odd',
['y'] = 'striped-even',
['yes'] = 'striped-even',
['on'] = 'striped-even',
['even'] = 'striped-even',
['striped'] = 'striped-even',
}
local NAVBOX_CHILD_INDICATOR = '!!C$H$I$L$D!!'
local NAVBOX_CHILD_INDICATOR_LENGTH = string.len( NAVBOX_CHILD_INDICATOR )
local CLASS_PREFIX = 'ranger-'
---------------------------------------------------------------------
local p = {}
local h = {} -- non-public
local hooks = mw.title.new('Module:Navbox/Hooks').exists and require('Module:Navbox/Hooks') or {}
---------------------------------------------------------------------
-- For templates: {{#invoke:navbox|main|...}}
function p.main(frame)
local args = p.mergeArgs(frame)
return p.build(args, true)
end
-- For modules: return require('module:navbox').build(args)
-- By default this method will skip the arguments sanitizing phase
-- (and onSanitizeArgsStart/onSanitizeArgsEnd hooks).
-- Set `doParseArgs` to true to do arguments sanitizing.
-- If `customConfig` table is provided, it will be merged into default config table (after onLoadConfig()).
-- If `customHooks` table is provided, all default hook handles will be overrided, unprovided hooks will be empty.
function p.build(args, doParseArgs, customConfig, customHooks)
if customHooks then
hooks = customHooks
end
if doParseArgs then
args = h.parseArgs(args)
end
h.runHook('onLoadConfig', config, args)
if customConfig then
for k,v in pairs(customConfig) do
config[k] = v
end
end
--merge default args
for k,v in pairs(DEFAULT_ARGS) do
if args[k] == nil then
args[k] = DEFAULT_ARGS[k]
end
end
h.runHook('onBuildTreeStart', args)
local dataTree = h.buildDataTree(args)
h.runHook('onBuildTreeEnd', dataTree, args)
if type(config.custom_render_handle) == 'function' then
return config.custom_render_handle(dataTree, args)
else
return h.render(dataTree)
end
end
-- merge args from frame and frame:getParent()
-- It may be used when creating custom wrapping navbox module.
--
-- For example, Module:PillNavbox
--
-- local RANGER = require('Module:Navbox')
-- local p = {}
-- function p.main(frame)
-- return RANGER.build(RANGER.mergeArgs(frame), true, {
-- default_navbox_class = 'pill', -- use "pill" style by default.
-- })
-- end
-- return p
--
function p.mergeArgs(frame)
local inputArgs = {}
for k, v in pairs(frame.args) do
v = mw.text.trim(tostring(v))
if v ~= '' then
inputArgs[k] = v
end
end
for k, v in pairs(frame:getParent().args) do
v = mw.text.trim(v)
if v ~= '' then
inputArgs[k] = v
end
end
return inputArgs
end
------------------------------------------------------------------------
-- equivalent to mw.text.split(str, div, true) for non-empty separator, but can be over 60x faster, since the latter is Unicode-aware.
-- Original version credit: http://richard.warburton.it.
function h.explode(div, str)
if (div=='') then return nil end
local pos,arr = 0,{}
-- for each divider found
for st,sp in function() return string.find(str,div,pos,true) end do
arr[#arr+1] = string.sub(str,pos,st-1) -- Attach chars left of current divider
pos = sp+1 -- Jump past current divider
end
arr[#arr+1] = string.sub(str,pos) -- Attach chars right of last divider
return arr
end
function h.parseArgs(inputArgs)
h.runHook('onSanitizeArgsStart', inputArgs)
local args = {}
for k, v in pairs(inputArgs) do
if type(k) == 'string' then
-- all named args have already been trimmed
local key = h.normalizeKey(k)
args[key] = h.normalizeValue(key, v)
else
args[k] = mw.text.trim(v) -- keep number-index arguments (for {{navbox|child|...}})
end
end
h.runHook('onSanitizeArgsEnd', args, inputArgs)
return args
end
-- Normalize the name string of arguments.
-- the normalized form is (index:)?name, in which:
-- index is number index such as 1, 1.3, 1.2.45,
-- name is in lowercase underscore-case, such as group, group_style
-- e.g: header_state, 1.3:list_style
-- the input argument name can be:
-- * camel-case: listStyle, ListStyle
-- * space separated: list style
-- * prefix+index+postfix?, and can be in camel-case or space/hyphen separated or mixed: list 1 style, list1, list1Style, list1_style
-- * index.name: 1.3.list
-- * index_name: 1.3_list (Space separated are treated as underscore separated, therefore 1.3 list are vaild too)
function h.normalizeKey(s)
-- camel-case to lowercase underscore-case
s = s:gsub('%l%f[%u]', '%0_') -- listStyle to list_style
s = (s:gsub(' ', '_')):lower() -- space to underscore
s = s:gsub('%l%f[%d]', '%0_') -- group1* to group_1*
s = s:gsub('%d%f[%l]', '%0_') -- *1style to *1_style
-- number format x_y_z to x.y.z
s = s:gsub('(%d)_%f[%d]', '%1%.')
-- move index to the beginning:
-- group_1.2_style to 1.2:group_style
-- group_1 to 1:group
s = s:gsub('^([%l_]+)_([%d%.]+)', '%2:%1')
-- support index.name and index_name:
-- 1.2.group / 1.2_group to 1.2:group
s = s:gsub('^([%d%.]+)[%._]%f[%l]', '%1:')
-- now the key should be in normalized form, if the origin key is vaild
-- standardize *_css to *_style
s = s:gsub('_css$', '_style')
-- standardize *collapsible to *state
s = s:gsub('collapsible$', 'state')
-- standardize all aliases to the canonical name
return CANONICAL_NAMES[s] or s
end
function h.normalizeValue(k, v)
k = tostring(k)
if k:find('_style$') then
v = (v .. ';'):gsub(';;', ';')
return v
elseif k:find('state$') then
return STATES[v]
elseif k == 'striped' then
return STRIPED[v]
elseif k == 'meta' then
return not BOOL_FALSE[v]
elseif v:sub(1, 2) == '{|' or v:match('^[*:;#]') then
-- Applying nowrap to lines in a table does not make sense.
-- Add newlines to compensate for trim of x in |parm=x in a template.
return '\n' .. v ..'\n'
end
return v
end
-- parse arguments, convert them to structured data tree
function h.buildDataTree(args)
-- parse args to a tree
local tree = h.buildTree(args)
-- build root navbox data
local data = h.buildNavboxData(tree.info)
-- Recursively build section tree
if tree.children then
data.sections = h.buildSections(tree.children, {
listClass = h.mergeAttrs(args.list_class, config.default_list_class),
listStyle = args.list_style,
groupClass = h.mergeAttrs(args.group_class, config.default_group_class),
groupStyle = args.group_style,
sectionClass = h.mergeAttrs(args.section_class, config.default_section_class),
sectionStyle = args.section_style,
headerClass = h.mergeAttrs(args.header_class, config.default_header_class),
headerStyle = args.header_style,
headerState = args.header_state or config.default_header_state,
})
end
if args[1] == 'child' then
data.CHILD_MODE = true
end
return data
end
function h.buildSections(list, defaults)
local sections = {}
local section = nil
for k, node in h.orderedPairs(list) do
local info = node.info or {}
--start a new section if needed
if info.header or not section then
section = {
class = h.mergeAttrs(info.section_class, defaults.sectionClass),
style = h.mergeAttrs(info.section_style, defaults.sectionStyle),
body = {}
}
-- Section header if needed.
-- If the value of a `|header_n=` is two or more consecutive "-" characters (e.g. --, -----),
-- it means start a new section without header, and the new section will be not collapsable.
if info.header and not string.match(info.header, '^%-%-+$') then
section.header = {
content = info.header,
class = h.mergeAttrs(info.header_class, defaults.headerClass),
style = h.mergeAttrs(info.header_style, defaults.headerStyle),
}
section.state = info.state or defaults.headerState or 'mw-collapsible'
end
sections[#sections+1] = section
end
-- above/below for this section
if info.above then
section.above = {
content = info.above,
class= h.mergeAttrs(info.above_class, config.default_above_class),
style = info.above_style,
}
end
if info.below then
section.below = {
content = info.below,
class= h.mergeAttrs(info.below_class, config.default_below_class),
style = info.below_style,
}
end
-- this group+list row
if info.group or info.list or node.children then
local row = {}
section.body[#section.body+1] = row
if info.group then
row.group = {
content = info.group,
class = h.mergeAttrs(info.group_class, defaults.groupClass),
style = h.mergeAttrs(info.group_style, defaults.groupStyle),
}
end
if info.list then
if string.sub(info.list, 1, NAVBOX_CHILD_INDICATOR_LENGTH) == NAVBOX_CHILD_INDICATOR then
-- it is from {{navbox|child| ... }}
row.sections = mw.text.jsonDecode(string.sub(info.list, NAVBOX_CHILD_INDICATOR_LENGTH+1))
else
row.list = {
content = info.list,
class = h.mergeAttrs(info.list_class, defaults.listClass),
style = h.mergeAttrs(info.list_style, defaults.listStyle),
}
end
end
-- sub-nodes, will override {{navbox|child| ... }}
if node.children then
row.sections = h.buildSections(node.children, defaults)
end
end
end
-- flatten if needed:
-- If a section has only one list with no content and no corresponding group but has sublists, these sublists will be moved to upper level.
if config.auto_flatten_top_level then
for _, sect in ipairs(sections) do
if #sect.body == 1 then
local node = sect.body[1]
if not node.group and not node.list and node.sections and #node.sections == 1 and not node.sections[1].header then
sect.body = node.sections[1].body
end
end
end
end
return sections
end
function h.buildNavboxData(info)
local data = {
state = info.state or 'mw-collapsible', -- here we need a default value for empty input
striped = info.striped,
class = h.mergeAttrs(info.navbox_class, config.default_navbox_class),
style = info.navbox_style,
}
-- data for titlebar
if info.title or info.meta or data.state ~= '' then
data.title = {
content = info.title,
class = h.mergeAttrs(info.title_class, config.default_title_class),
style = info.title_style,
}
if info.meta then
data.metaLinks = {
link = info.meta_link, -- will be used as [[$link|$text]]
url = info.meta_url, -- will be used as [$url $text], only if there is no data.metaLinks.link
text = info.meta_text, --hovertext
}
if not info.meta_link and not info.meta_url then
-- default link target
local title = mw.title.new(info.template or mw.getCurrentFrame():getParent():getTitle(), 'Template')
if not title then
error('Invalid title ' .. info.template)
end
data.metaLinks.link = title.fullText
end
if not info.meta_text then
local msg = mw.message.new(config.editlink_hover_message_key)
data.metaLinks.text = msg:exists() and msg:plain() or 'View or edit this template'
end
end
end
-- above/below
if info.above then
data.above = {
content = info.above,
class= h.mergeAttrs(info.above_class, config.default_above_class),
style = info.above_style,
}
end
if info.below then
data.below = {
content = info.below,
class= h.mergeAttrs(info.below_class, config.default_below_class),
style = info.below_style,
}
end
return data
end
-- parse arguments, convert them into a tree based on their index
-- each node on tree is { info = { #data for this node# }, children = {#children nodes#} }
function h.buildTree(args, defaults)
local tree = { info = {} }
local check = function(key, value)
local index, name = string.match(key, '^([%d%.]+):(.+)$')
-- no number index found, for root node
if not index then
tree.info[key] = value
return
end
-- filter invalid number index
if string.match(index, '^%.') or string.match(index, '%.$') or string.match(index, '%.%.') then
return
end
-- find the node that matches the index in the tree
local arr = h.explode('.', index)
local node = tree
for _, v in ipairs(arr) do
v = tonumber(v)
if not node.children then
node.children = {}
end
if not node.children[v] then
node.children[v] = { info = {} }
end
node = node.children[v]
end
node.info[name] = value
end
for k,v in pairs(args) do
check(k, v)
end
return tree
end
function h.render(data)
-- handle {{navbox|child|...}} syntax
if data.CHILD_MODE then
return NAVBOX_CHILD_INDICATOR..mw.text.jsonEncode(data.sections)
end
----- normal case -----
local out = mw.html.create()
-- build navbox container
local navbox = out:tag('div')
:attr('role', 'navigation'):attr('aria-label', 'Navbox')
:addClass(CLASS_PREFIX..'navbox')
:addClass(data.class)
:addClass(data.striped)
:addClass(data.state)
:cssText(data.style)
--title bar
if data.title then
local titlebar = navbox:tag('div'):addClass(CLASS_PREFIX..'title')
titlebar:tag('div'):addClass('mw-collapsible-toggle-placeholder')
if data.metaLinks then
titlebar:node(h.renderMetaLinks(data.metaLinks))
end
if data.title then
titlebar:addClass(data.title.class):tag('div')
:addClass(CLASS_PREFIX..'title-text')
:addClass(data.title.class)
:cssText(data.title.style)
:wikitext(data.title.content)
end
end
--above
if data.above then
navbox:tag('div')
:addClass(CLASS_PREFIX..'above mw-collapsible-content')
:addClass(data.above.class)
:cssText(data.above.style)
:wikitext(data.above.content)
:attr('id', (not data.title) and mw.uri.anchorEncode(data.above.content) or nil) -- id for aria-labelledby attribute, if no title
end
-- sections
if data.sections then
h.renderSections(data.sections, navbox, 0, true)
else
-- Insert a blank section for completely empty navbox to ensure it behaves correctly when collapsed.
if not data.above and not data.below then
navbox:tag('div'):addClass(CLASS_PREFIX..'section mw-collapsible-content')
end
end
--below
if data.below then
navbox:tag('div')
:addClass(CLASS_PREFIX..'below mw-collapsible-content')
:addClass(data.below.class)
:cssText(data.below.style)
:wikitext(data.below.content)
end
return tostring(out)..'[[Category:Pages with navboxes]]' -- suggest to use HIDDENCAT here; will be used for maintenance & gadget imports
end
function h.renderSections(data, container, level, even)
for i,sect in ipairs(data) do
--section box
local section = container:tag('div')
:addClass(CLASS_PREFIX..'section mw-collapsible-content')
:addClass(sect.class)
:addClass(sect.state)
:cssText(sect.style)
-- section header
if sect.header then
section:tag('div')
:addClass(CLASS_PREFIX..'header')
:addClass(sect.header.class)
:cssText(sect.header.style)
:tag('div'):addClass('mw-collapsible-toggle-placeholder'):done()
:tag('div'):addClass(CLASS_PREFIX..'header-text'):wikitext(sect.header.content)
end
-- above:
if sect.above then
section:tag('div')
:addClass(CLASS_PREFIX..'above mw-collapsible-content')
:addClass(sect.above.class)
:cssText(sect.above.style)
:wikitext(sect.above.content)
end
-- body: groups&lists
local box = section:tag('div'):addClass(CLASS_PREFIX..'section-body mw-collapsible-content')
even = h.renderBody(sect.body, box, level, (level==0) and true or even) -- reset even status each section
-- below:
if sect.below then
section:tag('div')
:addClass(CLASS_PREFIX..'below mw-collapsible-content')
:addClass(sect.below.class)
:cssText(sect.below.style)
:wikitext(sect.below.content)
end
end
return even
end
function h.renderMetaLinks(info)
local box = mw.html.create('span'):addClass(CLASS_PREFIX..'meta')
local meta = box:tag('span'):addClass('nv nv-view')
if info.link then
meta:wikitext('[['..info.link..'|')
:tag('span'):wikitext(info.text):attr('title', info.text):done()
:wikitext(']]')
elseif info.url then
meta:wikitext('['..info.url..' ')
:tag('span'):wikitext(info.text):attr('title', info.text):done()
:wikitext(']')
end
return box
end
function h.renderBody(info, box, level, even)
local count = 0
for _,v in h.orderedPairs(info) do
if v.group or v.list or v.sections then
count = count + 1
-- row container
local row = box:tag('div'):addClass(CLASS_PREFIX..'row')
-- group cell
if v.group or (v.sections and level > 0 and not v.list) then
local groupCell = row:tag('div')
:addClass(CLASS_PREFIX..'group level-'..level)
:addClass((level > 0) and CLASS_PREFIX..'subgroup' or nil)
local groupContentWrap = groupCell:tag('div'):addClass(CLASS_PREFIX..'wrap')
if v.group then
groupCell:addClass(v.group.class):cssText(v.group.style)
groupContentWrap:wikitext(v.group.content)
else
groupCell:addClass('empty')
row:addClass('empty-group-list')
end
else
row:addClass('empty-group')
end
-- list cell
local listCell = row:tag('div'):addClass(CLASS_PREFIX..'listbox')
if not v.list and not v.sections then
listCell:addClass('empty')
row:addClass('empty-list')
end
if v.list or (v.group and not v.sections) then
--listCell:node(h.renderList(v['list'] or '', k, level, args))
even = not even -- flip even/odd status
local cell = listCell:tag('div')
:addClass(CLASS_PREFIX..'wrap')
:addClass(even and CLASS_PREFIX..'even' or CLASS_PREFIX..'odd')
if v.list then
cell:addClass(v.list.class):cssText(v.list.style)
:tag('div'):addClass(CLASS_PREFIX..'list'):wikitext(v.list.content)
end
end
if v.sections then
local sublistBox = listCell:tag('div'):addClass(CLASS_PREFIX..'sublist level-'..level)
even = h.renderSections(v.sections, sublistBox, level+1, even)
end
end
end
if count > 0 then
box:css('--count', count) -- for flex-grow
end
return even
end
-- pairs, but sort the keys alphabetically
function h.orderedPairs(t, f)
local a = {}
for n in pairs(t) do table.insert(a, n) end
table.sort(a, f)
local i = 0 -- iterator variable
local iter = function () -- iterator function
i = i + 1
if a[i] == nil then return nil
else return a[i], t[a[i]]
end
end
return iter
end
-- For cascading parameters, such as style or class, they are merged in exact order (from general to specific).
-- Any parameter starting with multiple hyphens(minus signs) will terminate the cascade.
-- An example:
-- For group_1.1, its style is affected by parameters |group_1.1_style=... , |subgroup_level_1_style=... , and |subgroup_style=... .
-- If we have |group_1.1_style= color:red; |subgroup_level_1_style= font-weight: bold; and |subgroup_style= color: green; ,
-- the style of group_1.1 will be style="color:green; font-weight: bold; color: red;" ;
-- if we have |group_1.1_style= -- color:red; |subgroup_level_1_style= font-weight: bold; and |subgroup_style= color: green; ,
-- the style of group_1.1 will be style="color: red;" only, and the cascade is no longer performed for |subgroup_level_1_style and |subgroup_style.
function h.mergeAttrs(...)
local trim = mw.text.trim
local s = ''
for i=1, select('#', ...) do
local v = trim(select(i, ...) or '')
local str = string.match(v, '^%-%-+(.*)$')
if str then
s = trim(str..' '..s)
break
else
s = trim(v..' '..s)
end
end
if s == '' then s = nil end
return s
end
function h.runHook(key, ...)
if hooks[key] then
hooks[key](...)
end
end
-----------------------------------------------
return p
a79480d191a5de8b03e6884580f407d4a2195e62
Module:ArgsUtil
828
13
21
2025-11-02T00:43:37Z
ARTIFICER
564804
Importing default loadout
Scribunto
text/plain
local p = {}
function p.merge()
local f = mw.getCurrentFrame()
local origArgs = f.args
local parentArgs = f:getParent().args
local args = {}
for k, v in pairs(origArgs) do
v = mw.text.trim(tostring(v))
if v ~= '' then
args[k] = v
end
end
for k, v in pairs(parentArgs) do
v = mw.text.trim(v)
if v ~= '' then
args[k] = v
end
end
return args
end
return p
1d1b2105bd857dcc5e33c8c0a8a780f67cbae72e
Module:ArgsUtil/doc
828
14
22
2025-11-02T00:43:37Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
This is a basic module for processing args. Usage:
<syntaxhighlight lang="lua">
local util_args = require('Module:ArgsUtil')
local p = {}
function p.main(frame)
local args = util_args.merge() -- it is not necessary to pass a `frame` object; `merge` will generate its own
mw.logObject(args)
-- `args` now contains args passed via the template merged with defaults provided directly via the invoke.
-- anything the user sent via the template will be given priority.
end
return p
</syntaxhighlight>
== Extending this module ==
By design, {{ml|ArgsUtil}} is shipped with only a single function and no customization available; this simplifies documentation and covers nearly all use cases. An extended version of this module is available at [[support:Module:ArgsUtil|Module:ArgsUtil on the support wiki]] if you want additional functionality; and you can of course feel free to modify this module on your own wiki as needed.
6fc2a23dcff62ac5a222903e46bc56c07b0a2b1f
Module:Template link
828
15
23
2025-11-02T00:43:38Z
ARTIFICER
564804
Importing default loadout
Scribunto
text/plain
-- This code is adapted from Wikipedia
-- For the original, please see: https://en.wikipedia.org/wiki/Module:Template_link_general
-- This implements Template:Tlg
local getArgs = require('Module:ArgsUtil').merge
local p = {}
-- Is a string non-empty?
local function _ne(s)
return s ~= nil and s ~= ""
end
local nw = mw.text.nowiki
local function addTemplate(s)
local i, _ = s:find(':', 1, true)
if i == nil then
return 'Template:' .. s
end
local ns = s:sub(1, i - 1)
if ns == '' or mw.site.namespaces[ns] then
return s
else
return 'Template:' .. s
end
end
local function trimTemplate(s)
local needle = 'template:'
if s:sub(1, needle:len()):lower() == needle then
return s:sub(needle:len() + 1)
else
return s
end
end
local function linkTitle(args)
if _ne(args.nolink) then
return args[1]
end
local titleObj
local titlePart = '[['
if args[1] then
-- This handles :Page and other NS
titleObj = mw.title.new(args[1], 'Template')
else
titleObj = mw.title.getCurrentTitle()
end
titlePart = titlePart .. (titleObj ~= nil and titleObj.fullText or
addTemplate(args[1]))
local textPart = args.alttext
if not _ne(textPart) then
if titleObj ~= nil then
textPart = titleObj:inNamespace("Template") and args[1] or titleObj.fullText
else
-- redlink
textPart = args[1]
end
end
if _ne(args.subst) then
-- HACK: the ns thing above is probably broken
textPart = 'subst:' .. textPart
end
if _ne(args.brace) then
textPart = nw('{{') .. textPart .. nw('}}')
elseif _ne(args.braceinside) then
textPart = nw('{') .. textPart .. nw('}')
end
titlePart = titlePart .. '|' .. textPart .. ']]'
if _ne(args.braceinside) then
titlePart = nw('{') .. titlePart .. nw('}')
end
return titlePart
end
function p.main(frame)
local args = getArgs()
return p._main(args)
end
function p._main(args)
local bold = _ne(args.bold) or _ne(args.boldlink) or _ne(args.boldname)
local italic = _ne(args.italic) or _ne(args.italics)
local dontBrace = _ne(args.brace) or _ne(args.braceinside)
local code = _ne(args.code) or _ne(args.tt)
local show_result = _ne(args._show_result)
local expand = _ne(args._expand)
-- Build the link part
local titlePart = linkTitle(args)
if bold then titlePart = "'''" .. titlePart .. "'''" end
if _ne(args.nowrapname) then titlePart = '<span class="nowrap">' .. titlePart .. '</span>' end
-- Build the arguments
local textPart = ""
local textPartBuffer = "|"
local codeArguments = {}
local codeArgumentsString = ""
local i = 2
local j = 1
while args[i] do
local val = args[i]
if val ~= "" then
if _ne(args.nowiki) then
-- Unstrip nowiki tags first because calling nw on something that already contains nowiki tags will
-- mangle the nowiki strip marker and result in literal UNIQ...QINU showing up
val = nw(mw.text.unstripNoWiki(val))
end
local k, v = string.match(val, "(.*)=(.*)")
if not k then
codeArguments[j] = val
j = j + 1
else
codeArguments[k] = v
end
codeArgumentsString = codeArgumentsString .. textPartBuffer .. val
if italic then
val = '<span style="font-style:italic;">' .. val .. '</span>'
end
textPart = textPart .. textPartBuffer .. val
end
i = i + 1
end
-- final wrap
local ret = titlePart .. textPart
if not dontBrace then ret = nw('{{') .. ret .. nw('}}') end
if _ne(args.a) then ret = nw('*') .. ' ' .. ret end
if _ne(args.kbd) then ret = '<kbd>' .. ret .. '</kbd>' end
if code then
ret = '<code>' .. ret .. '</code>'
elseif _ne(args.plaincode) then
ret = '<code style="border:none;background:transparent;">' .. ret .. '</code>'
end
if _ne(args.nowrap) then ret = '<span class="nowrap">' .. ret .. '</span>' end
--[[ Wrap as html??
local span = mw.html.create('span')
span:wikitext(ret)
--]]
if _ne(args.debug) then ret = ret .. '\n<pre>' .. mw.text.encode(mw.dumpObject(args)) .. '</pre>' end
if show_result then
local result = mw.getCurrentFrame():expandTemplate{title = addTemplate(args[1]), args = codeArguments}
ret = ret .. " → " .. result
end
if expand then
local query = mw.text.encode('{{' .. addTemplate(args[1]) .. string.gsub(codeArgumentsString, textPartBuffer, "|") .. '}}')
local url = mw.uri.fullUrl('special:ExpandTemplates', 'wpInput=' .. query)
mw.log()
ret = ret .. " [" .. tostring(url) .. "]"
end
return ret
end
return p
45d40a4bff9a1d0eb4274f56fb2f17849aa68728
Module:Template link/doc
828
16
24
2025-11-02T00:43:38Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
{{From Wikipedia|Module:Template link general}}
1a395265ccbd055518c1d14b52362cc148b89c81
Module:Main page
828
17
25
2025-11-02T00:43:38Z
ARTIFICER
564804
Importing default loadout
Scribunto
text/plain
local p = {}
local h = {}
-- merge args from frame and frame:getParent()
function h.mergeArgs(frame)
local inputArgs = {}
for k, v in pairs(frame.args) do
v = mw.text.trim(tostring(v))
if v ~= '' then
inputArgs[k] = v
end
end
for k, v in pairs(frame:getParent().args) do
v = mw.text.trim(v)
if v ~= '' then
inputArgs[k] = v
end
end
return inputArgs
end
--------------------------------------------------------------------
function p.main(frame)
local args = h.mergeArgs(frame)
-- use the rootpage parameter if given, otherwise use the current page name
local rootpage = args['rootpage'] or mw.title.getCurrentTitle().fullText
local layouts = {'desktop', 'tablet', 'mobile'}
for _,layout in pairs(layouts) do
-- collapse consecutive line breaks and spaces, then trim
-- we need to check for permutations of " \n" because trim can't clean that up if it's in the middle of the string
args[layout] = mw.text.trim(args[layout]):gsub("\n\n+", "\n"):gsub(" +", " "):gsub(" \n", "\n"):gsub("\n ", "\n")
-- check if columns are consistent in this layout
local warn = false
local last_column_count = 0
local current_column_count = 0
for _,row in pairs(mw.text.split(mw.text.trim(args[layout]), '\n')) do
current_column_count = #mw.text.split(row, '%s') --count elements in this row
if last_column_count == 0 then
last_column_count = current_column_count
elseif last_column_count ~= current_column_count then
warn = true
end
end
if warn then
mw.addWarning( 'ERROR: the ' .. layout .. ' layout does not have a consistent number of columns in each row. This will result in all the boxes merging into one.')
end
end
-- parse the arguments into CSS variables that contain legal syntax for grid-template-areas
local desktop_var = "--main-page-layout--desktop: '" .. string.gsub(args['desktop'], '\n', "' '") .. "';"
local tablet_var = "--main-page-layout--tablet: '" .. string.gsub(args['tablet' ], '\n', "' '") .. "';"
local mobile_var = "--main-page-layout--mobile: '" .. string.gsub(args['mobile' ], '\n', "' '") .. "';"
-- grid-template-columns overrides
local desktop_cols = mw.text.trim(string.gsub(args['desktop-columns'] or '', ';', ''))
local tablet_cols = mw.text.trim(string.gsub(args[ 'tablet-columns'] or '', ';', ''))
local mobile_cols = mw.text.trim(string.gsub(args[ 'mobile-columns'] or '', ';', ''))
-- set the variables used by grid-template-columns
if desktop_cols ~= '' then
desktop_var = desktop_var .. '--main-page-layout-columns--desktop: '.. desktop_cols ..';'
end
if tablet_cols ~= '' then
tablet_var = tablet_var .. '--main-page-layout-columns--tablet: '.. tablet_cols ..';'
end
if mobile_cols ~= '' then
mobile_var = mobile_var .. '--main-page-layout-columns--mobile: '.. mobile_cols ..';'
end
local boxes = {} -- list of all boxes as a simple list, used to set the order of appearance
local seen_boxes = {} -- list of all boxes as a k:v pair, used to filter out duplicates
local boxes_in_layout = {} -- list of layouts, then list of all boxes in that layout
local missing_boxes = {} -- list of layouts, then list of boxes that are *not* included in that layout
-- add every box referenced in the layout rules once
function parse_layout(layout)
for _,name in pairs(mw.text.split(mw.text.trim(args[layout]), '%s')) do
if not seen_boxes[name] then
boxes[#boxes+1] = name -- table with numerical keys for set html order
seen_boxes[name] = true
end
boxes_in_layout[layout][name] = true
end
end
-- loop through the layouts the first time to set up the box lists
for _,layout in pairs(layouts) do
boxes_in_layout[layout] = {}
missing_boxes[layout] = {}
parse_layout(layout)
end
-- then loop through the layouts a second time because we need to compare those completed lists to check for missing boxes
for _,layout in pairs(layouts) do
for _,name in pairs(boxes) do
if boxes_in_layout[layout][name] ~= true then
mw.addWarning( 'WARNING: the \"' .. name .. '\" box is missing in the ' .. layout .. ' layout. If this is intentional, you can ignore this warning.')
missing_boxes[layout][name] = true
end
end
end
-- start our mp-container wrapper, and add our variables from earlier as inline styles to declare them
-- the rootpage is added to the dataset so it's easily accessible by mp-edit-links.js and it doesn't need to make its own API call
local output = mw.html.create()
local container = output:tag('div'):attr('id', 'mp-container'):cssText(desktop_var .. tablet_var .. mobile_var):attr('data-rootpage', rootpage)
-- loop through boxes and add the relevant main page subpages into the output
for _,box in pairs(boxes) do
mw.ext.VariablesLua.vardefine('imp-variable-id', box) -- using a vardefine lets us pass this directly to the template without going through the user-facing box
local pre_vardefine = ''
for _,layout in pairs(layouts) do
pre_vardefine = pre_vardefine .. (missing_boxes[layout][box] and '0' or '1') .. ','
end
-- formatted as a psuedo-bitmask to reduce variable usage, "<display-on-destop>, <display-on-tablet>, <display-on-mobile>," each value is 0 or 1 (trailing comma is insignificant)
-- expected to be used with #explode in the template receiving the variable
mw.ext.VariablesLua.vardefine('imp-variable-display-box', pre_vardefine)
if mw.title.new(rootpage .. '/' .. box).exists then
container:wikitext(frame:expandTemplate{ title = ':' .. rootpage .. '/' .. box})
else
container:wikitext(frame:expandTemplate{ title = 'Main page box/missing', args = { box, rootpage = rootpage}}) -- See [[Template:Main page box/missing]]
end
end
return output
end
return p
50f10670c4a97ec14d749325645a6bf800f10e59
Module:Navbox/Hooks
828
18
26
2025-11-02T00:43:39Z
ARTIFICER
564804
Importing default loadout
Scribunto
text/plain
-- as of Module:Navbox version 1.2.5
local p = {}
---------------------------------------------------
-- Runs before RANGER does args sanitizing
-- `inputArgs` is the merged input arguments from the template (frame.args + frame:getParent().args)
function p.onSanitizeArgsStart(inputArgs)
end
-- Runs after RANGER does args sanitizing
-- `args` parameter is the sanitized arguments table with normalized keys (in lowercase underscore-case with canonical names) and normalized values.
function p.onSanitizeArgsEnd(args, inputArgs)
end
-- Runs when RANGER loads config table (after onSanitizeArgsEnd and before onBuildTreeStart)
-- `config` parameter is the default config table.
-- `args` parameter is the sanitized arguments table (has not yet merged the DEFAUT_ARGS table).
function p.onLoadConfig(config, args)
end
-- Runs before RANGER converts sanitized arguments table to structured data tree
-- `args` parameter is the sanitized arguments table that has the DEFAUT_ARGS merged.
function p.onBuildTreeStart(args)
end
-- Runs after RANGER converts sanitized arguments table to structured data tree
-- `tree` parameter is the structured data.
-- `args` parameter is the sanitized arguments table.
function p.onBuildTreeEnd(tree, args)
end
---------------------------------------------------
return p
a124a9f396b4a5a6c91de416c6cb8af5342f41fb
Module:Navbox/doc
828
19
27
2025-11-02T00:43:39Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
This module is used by [[Template:Navbox]].
87d5c562165cd75b963e03aa428c80413bacff30
Template:Documentation
10
20
28
2025-11-02T00:43:40Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly><!--
--><div class="documentation"><!--
--><div class="documentation-header"><!--
-->[[File:Template-{{#ifexist:{{#vardefineecho:docpage|{{{1|Template:{{#replace:{{{1|{{PAGENAME}}/doc}}}|Template:|}}}}}<!-- end vde -->}}|{{#if:{{{baddoc|}}}|bad}}|no}}info.svg|50px|link=]] <!--
--><span style="font-weight: bold; font-size: 125%; margin-right: 10px;">Documentation</span> <!--
-->{{#ifeq:{{SUBPAGENAME}}|doc|<!--nothing-->|<!--
-->{{#ifexist:{{#var:docpage}}|<!--
--><span style="font-size: 90%; font-style: italic;"><!--
-->[{{fullurl:{{#var:docpage}}|action=edit}} Edit] this documentation at [{{fullurl:{{#var:docpage}}|redirect=no}} {{FULLPAGENAMEE:{{#var:docpage}}}}].<!--
--></span><!--
-->}}<!--
-->}}<!--
--><div style="text-align: right; margin-left: 5px;"><!--
-->([{{fullurl:{{#var:docpage}}|action=edit}} edit] • [{{fullurl:{{#var:docpage}}|action=history}} history] • [{{fullurl:{{FULLPAGENAMEE}}|action=purge}} purge])<!--
--></div><!--
--></div><!--
<!-- leave line break here -->
{{#if:{{{lua|}}}|{{UsesLua|{{{lua}}} }} }}
<!-- documentation text/error box begins here -->
<div style="border-radius: 5px; border: 2px solid var(--wiki-content-border-color); margin: 0.5em auto 1em; padding: 0.8em 1.2em; background: var(--wiki-content-background-color--secondary);">
<!--
-->{{#ifexist:{{#var:docpage}}|<!--
If there is documentation
-->
{{ {{#var:docpage}} }}
<!--
Else
-->|<!--
-->No documentation subpage exists yet for this template. [{{fullurl:{{FULLPAGENAMEE:Template:<!--
-->{{#if:{{{1|}}}|{{#replace:{{{1|}}}|Template:|}}|{{PAGENAME}}/doc<!-- /if -->}}<!--
/FULLPAGENAME--> }}|action=edit&preload=Template:Documentation/preload}} Create one now].<!--
-->[[Category:Templates with no documentation]]<!--
-->}}<!-- leave line break here -->
<!-- documentation text/error box ends here -->
</div>
<!-- -->{{#ifeq:{{SUBPAGENAME}}|doc|<!--
-->{{#ifeq:{{BASEPAGENAME}}|Doc|<!--nothing-->|<!-- only if page is not Template:Documentation
-->This is the documentation page, it should be transcluded into the main template page. See {{tlx|doc}} for more information. <!--
-->[[Category:Template documentation]]<!--
-->}}<!--
-->}}<!--
--></div><!--
--></includeonly><!--
--><noinclude>{{Documentation}}
[[Category:Documentation templates| ]]
</noinclude>
6eb6bc81f8d9773ecfa3c223359b1c78472fde05
Template:Luadoc
10
21
29
2025-11-02T00:43:40Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<noinclude>[[Category:Documentation templates]]</noinclude>{{#ifeq:{{int:scribunto-doc-page-name|{{ROOTPAGENAME}}}}|{{FULLPAGENAME}}||<div class="luadoc">Edit the [[{{int:scribunto-doc-page-name|{{ROOTPAGENAME}}}}|documentation or categories]] for this module. {{#ifexist:{{FULLPAGENAME}}/i18n|This module has an [[/i18n|i18n file]].}}</div>}}
37de49949dfa0f16975ff4e9850b4573ec388cb6
Template:MP link
10
22
30
2025-11-02T00:43:40Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly><!--
Variables
-->{{#vardefine:link|{{{link|{{{1|}}}}}}}}{{#ifeq:{{#pos:{{#var:link}}|:}}|0|{{#vardefine:link|{{#sub:{{#var:link}}|1}}}}}}<!--
Image-->{{#if:{{{image|}}}|[[File:{{#replace:{{{image|}}}|File:}}|{{{size|42px}}}|link={{#var:link}}{{#if:{{{altText|}}}|{{!}}alt={{{altText|}}}}}|class={{{imageClass|}}}]]}}<!--
Link below the image
-->{{#if:{{{1|}}}|<!--
If it's an external link, use external link syntax -->{{#if:{{#pos:{{{link|}}}|http}}|[{{{link|}}} {{{1|}}}]|<!--
Otherwise use normal syntax
the ifeq, pos, sub combo is filtering out a leading :, so that we can add our own without doubling up, allowing easy category linking
-->[[:{{#var:link}}|{{{1|}}}]]}}
}}</includeonly><noinclude>
{{doc}}
[[Category:Main page templates]]
</noinclude>
13a2f6c745624b13ca85f7e3fbb939769acba979
Template:MP link/doc
10
23
31
2025-11-02T00:43:41Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
This creates one of the stylized and formatted links on the [[{{MediaWiki:Mainpage}}|main page]].
== Usage ==
Groups of this template should be wrapped inside of <code><nowiki><div class="mp-links"></div></nowiki></code> and each entry should be a separate line in an [[wikipedia:Help:Lists#Basically|unordered list]]. This div can be given one of the classes <code>columns-x</code> where x is a number from 1 to 8, and the links will line up in that many columns if space permits (default is 3). The div can also optionally be given the class <code>stretch</code> and it will stretch the list vertically to fill empty space. See [[Mediawiki:Common.css]] for the full definitions of these classes and styling for this template.
===Parameters===
<templatedata>
{
"description": {
"en": "Creates stylized and formatted links on the main page."
},
"format": "inline",
"params": {
"1": {
"label": {
"en": "Text"
},
"description": {
"en": "The text to display. If the link parameter is not given, this will also be the link target."
},
"example": "Stuff",
"type": "string",
"suggested": true
},
"link": {
"label": {
"en": "Link"
},
"description": {
"en": "The target page for the link, if different than the display text."
},
"required": false,
"example": "Main Page",
"type": "wiki-page-name"
},
"image": {
"label": {
"en": "Image"
},
"description": {
"en": "An image to display with the link."
},
"required": false,
"suggested": true,
"type": "wiki-file-name"
},
"size": {
"label": {
"en": "Image size"
},
"description": {
"en": "The size of the image, in px."
},
"required": false,
"default": "42px",
"type": "string"
},
"imageClass": {
"label": "Image class",
"description": "A class to give directly to the image",
"example": "invert-on-dark",
"type": "string",
"suggestedvalues": [
"invert-on-dark",
"invert-on-light"
]
},
"altText": {
"label": "Alt text",
"description": "Alt text to describe the image",
"example": "Wiki logo",
"type": "string",
"suggested": true
}
},
"paramOrder": [
"1",
"link",
"image",
"size",
"imageClass",
"altText"
]
}
</templatedata>
==Examples==
<pre>
<div class="mp-links columns-3">
* {{MP link|Stuff|link=Special:Random|image=Site-logo.png|size=42px}}
* {{MP link|Things|link=Special:Random}}
* {{MP link|Other stuff|link=Special:Random|image=Site-logo.png|size=42px}}
</div>
</pre>
Produces:
<div class="mp-links columns-3">
* {{MP link|Stuff|link=Special:Random|image=Site-logo.png|size=42px}}
* {{MP link|Things|link=Special:Random}}
* {{MP link|Other stuff|link=Special:Random|image=Site-logo.png|size=42px}}
</div>
<noinclude>
[[Category:Template documentation]]
</noinclude>
0df5d36904353428acb21882bd8923560f77a142
Template:Doc
10
24
32
2025-11-02T00:43:41Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#redirect [[Template:Documentation]]
041222999c2c4765a4663432058f50686fb65f40
Template:Uses Lua
10
25
33
2025-11-02T00:43:41Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{Ambox
| color = darkblue
| icon = Lua logo.svg
| title= This template uses one or more modules written in the Lua programming language.
| message = For more information, see [[wikipedia:Wikipedia:Lua|Wikipedia:Lua]] or the [[mw:Extension:Scribunto/Lua reference manual|Lua reference manual on mediawiki.org]]. Modules used include: {{#if:{{{1|}}}|{{#arraymap:{{{1|}}}|,|%s|'''[[Module:%s|%s]]'''}}|''None provided''}}.
| tiny = {{{tiny|}}}
| class = {{{class|}}}
}}</includeonly><noinclude>{{doc|Template:Ambox/doc}}</noinclude>
1930c9b36136a5562cfaf7584f811d62b114a58a
Template:Ambox
10
26
34
2025-11-02T00:43:42Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly><!--
--><div class="ambox {{{class|}}} {{#ifeq:{{lc:{{{tiny|}}}}}|yes|tiny}} noexcerpt"<!--
--> style="{{#if:{{{color|}}}|--ambox-color: {{{color|}}};<!-- /if -->}}"><!--
--><div class="ambox-icon metadata <!-- the metadata class stops it from showing in MediaViewer -->">[[File:{{{icon|Ambox banner content.svg}}}{{!}}{{#ifeq:{{lc:{{{tiny|}}}}}|yes|48x20px|48x48px}}|alt=|link=]]</div><!--
--><div class="ambox-content"><!-- start ambox content
-->{{#if: {{{title|}}} | <p class="ambox-title">{{{title}}}</p> }}<!--
--><p class="ambox-text">{{{message|No text provided.}}}{{#if: {{{date|}}} |<nowiki> </nowiki>(Message added: {{{date}}}) }}</p><!--
--></div><!-- end ambox content
--></div><!-- end ambox
--></includeonly><noinclude>
{{doc}}
[[Category:Notice templates]]</noinclude>
11c1d0a1c9c2fcd4b89b27313303decfae03dea7
Template:((
10
27
35
2025-11-02T00:43:42Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
{{<noinclude>{{documentation}}</noinclude>
a506ba66cf7c806baae7faecb221b3a946721f6a
Template:Tlx
10
28
36
2025-11-02T00:43:42Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#redirect [[Template:Tl]]
af3906f239c45d791753d3170c656eddd6d1af5f
Template:Tl
10
29
37
2025-11-02T00:43:43Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{#invoke:Template link|main|code=on}}</includeonly><noinclude>
{{Documentation}}
</noinclude>
1c13b1daaf7b7e8ce1e45cc03b4baf31c09bc6cd
Template:Tl/doc
10
30
38
2025-11-02T00:43:43Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
{{From Wikipedia|Module:Template link general,Template:Tlx}}
{{Uses Lua|Template link}}
This template returns an exemplaric use of a template while linking to the template description page, if the template exists.
== Usage ==
<pre>
{{tl|<Template name>}}
{{tl|<Template name>|<Template parameters>}}
</pre>
; ''unnamed parameter'' 1
: Template name (without <code>Template:</code> prefix)
; ''unnamed parameter'' 2 - 9
: Optional. Template parameters
; nl
: Optional flag to display an un-linked template usage.
== Examples ==
: <code><nowiki>{{tl|stub}}</nowiki></code> returns {{tl|stub}}
: <code><nowiki>{{tl|stub|1}}</nowiki></code> returns {{tl|stub|1}}
: <code><nowiki>{{tl|stub|1|2|nl{{=}}y}}</nowiki></code> returns {{tl|stub|1|2|nl{{=}}y}}
: <code><nowiki>{{tl|for|page|t1{{=}}alt text}}</nowiki></code> returns {{tl|for|page|t1{{=}}alt text}}
== See also ==
<includeonly>
[[Category:Formatting templates]]
</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
7cb4f0fa749ef8a18a48c4b5816357a225f4acee
Template:Nowrap
10
31
39
2025-11-02T00:43:43Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<span class="nowrap">{{{1}}}</span><noinclude>
{{documentation}}
</noinclude>
8817bafce418a08a72f3425283fc03d04a2d8d44
Template:))
10
32
40
2025-11-02T00:43:44Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
}}<noinclude>
{{documentation}}
</noinclude>
85ca77d4d6ff71d8e6396ebd798f87fa7f45dc02
Template:))/doc
10
33
41
2025-11-02T00:43:44Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#redirect [[Template:((/doc]]
509bb731d447456a18489848c8a1ce38feddabcc
Template:No wrap
10
34
42
2025-11-02T00:43:44Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#redirect [[Template:Nowrap]]
269180d5083536bbbf72d889477805cfde7aac9e
Template:Normal
10
35
43
2025-11-02T00:43:44Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<span style{{=}}"font-weight:normal; font-style:normal">{{{1}}}</span><noinclude>
{{documentation}}
</noinclude>
f1d74e033cde1ce3b2efdc98b78fb863b8524fcf
Template:((/doc
10
36
44
2025-11-02T00:43:45Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
{| class="wikitable" style="text-align:center"
|-
! scope="col" style="width:7.0em;" | {{no wrap|Template call}}<br>{{normal|('''m''' for magic word)}}
! scope="col" style="width:5.75em;" | {{no wrap|Output}} {{normal|(delayed interpretation as wikimarkup)}}
! scope="col" style="width:9.0em;" | {{no wrap|HTML alternative}} {{normal|(never interpreted as wikimarkup)}}
! Why you might want to use this
|- style="vertical-align:top"
| <code><nowiki>{{!}}</nowiki></code> '''(m)'''
| <nowiki>|</nowiki>
| &#124; or {{tl|pipe}}
| Displaying pipe characters inside of a parser function
|- style="vertical-align:top"
| <code><nowiki>{{=}}</nowiki></code> '''(m)'''
| <nowiki>=</nowiki>
| &#61;
| Displaying equal signs inside of unnamed parameters (e.g. <code><nowiki>{{MyTemplate|1+1=2}}</nowiki></code> will assign <code>2</code> to <code><nowiki>{{{1+1|}}}</nowiki></code>; <code><nowiki>{{MyTemplate|1+1{{=}}2}}</nowiki></code> will do what you want)
|- style="vertical-align:top"
| {{tlx|!!}}
| <nowiki>||</nowiki>
| &#124;&#124;
| Displaying a break between two table cells inside of a parser function
|- style="vertical-align:top"
| {{tlx|!(}}
| {{!(}}
| &#91;
| Displaying a bracket inside of an external link
|- style="vertical-align:top"
| {{tlx|)!}}
| {{)!}}
| &#93;
| Displaying a bracket inside of an external link
|- style="vertical-align:top"
| {{tlx|!((}}
| {{!((}}
| &#91;&#91;
| Displaying a bracket inside of a link
|- style="vertical-align:top"
| {{tlx|))!}}
| {{))!}}
| &#93;&#93;
| Displaying a bracket inside of a link
|- style="vertical-align:top"
| {{tlx|(}}
| {{(}}
| &#123;
| Escaping a single brace immediately next to a template or parser function to avoid turning it into a parameter
|- style="vertical-align:top"
| {{tlx|)}}
| {{)}}
| &#125;
| Escaping a single brace immediately next to a template or parser function to avoid turning it into a parameter
|- style="vertical-align:top"
| {{tlx|((}}
| {{((}}
| &#123;&#123;
| Displaying open braces for a template without actually transcluding that template
|- style="vertical-align:top"
| {{tlx|))}}
| {{))}}
| &#125;&#125;
| Displaying closed braces for a template without actually transcluding that template
|- style="vertical-align:top"
| {{tlx|(((}}
| {{(((}}
| &#123;&#123;&#123;
| Displaying a template parameter's open curly braces without actually using that variable
|- style="vertical-align:top"
| {{tlx|)))}}
| {{)))}}
| &#125;&#125;&#125;
| Displaying a template parameter's closed curly braces without actually using that variable
|- style="vertical-align:top"
| {{tlx|(!}}
| <nowiki>{|</nowiki>
| &#123;&#124;
| Starting a table inside of a parser function
|- style="vertical-align:top"
| {{tlx|!-}}
| <nowiki>|-</nowiki>
| &#124;&#45;
| Starting a new table row inside of a parser function
|- style="vertical-align:top"
| {{tlx|!)}}
| <nowiki>|}</nowiki>
| &#124;&#125;
| Closing a table inside of a parser function
|}<includeonly>
[[Category:Escaped character templates]]
</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
f898d14f10d43565cd2cfefce33e573d22d20ad4
Template:!(
10
37
45
2025-11-02T00:43:45Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
[<noinclude>
{{documentation}}</noinclude>
1b058774deae9a7e511a0486a04647d6a3b9af62
Template:!(/doc
10
38
46
2025-11-02T00:43:45Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#redirect [[Template:((/doc]]
509bb731d447456a18489848c8a1ce38feddabcc
Template:)!
10
39
47
2025-11-02T00:43:46Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
]<noinclude>
{{documentation}}</noinclude>
016897dfd1af3b146bed2b47e7aa58c0bbf6f23d
Template:)!/doc
10
40
48
2025-11-02T00:43:46Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#redirect [[Template:((/doc]]
509bb731d447456a18489848c8a1ce38feddabcc
Template:!((
10
41
49
2025-11-02T00:43:46Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
[[<noinclude>
{{documentation}}</noinclude>
a331374acf15177afbb3ffc0ec7bd5ada14c582e
Template:!((/doc
10
42
50
2025-11-02T00:43:46Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#redirect [[Template:((/doc]]
509bb731d447456a18489848c8a1ce38feddabcc
Template:))!
10
43
51
2025-11-02T00:43:47Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
]]<noinclude>
{{documentation}}</noinclude>
3d84066ce45d0c1fca0bb04608a4e73c6ea54324
Template:))!/doc
10
44
52
2025-11-02T00:43:47Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#redirect [[Template:((/doc]]
509bb731d447456a18489848c8a1ce38feddabcc
Template:Navbox
10
45
53
2025-11-02T00:43:47Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{#invoke:Navbox|main}}</includeonly><noinclude>[[Category:Navigation templates]] {{documentation}}</noinclude>
11355a4514de8aa6c0ae686240591d267101c58c
Template:Navbox/doc
10
46
54
2025-11-02T00:43:47Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
{{no direct use}}
{{UsesLua|Navbox}}
This template is designed to set up navigational templates relatively quickly with one or more lists of links. We highly recommend using this template for standardizing navigational templates and ease of use, especially for mobile devices.
See [[support:RANGER navboxes|the support wiki]] for more information, including installation steps and further examples.
== Basic example ==
The following example demonstrates the core functionality of this template: the title text, one standard link group, and one link group that contains two sub-groups. The rows are striped for easier readability.
{{Navbox
| title = Items
| striped = even
| group1 = Consumables
| list1 =
* Health Potion
* Mana Potion
| group2 = Weapons
| group2.1 = Swords
| list2.1 =
* Wooden Sword
* Rusted Sword
* Steel Sword
| group2.2 = Bows
| list2.2 =
* Shortbow
* Crossbow
* Longbow
}}
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{Navbox
| template = <template_title> <!-- Required. e.g. `|template=Items` for template:Items -->
| title = Items
| striped = even
| group1 = Consumables
| list1 =
* Health Potion
* Mana Potion
| group2 = Weapons
| group2.1 = Swords
| list2.1 =
* Wooden Sword
* Rusted Sword
* Steel Sword
| group2.2 = Bows
| list2.2 =
* Shortbow
* Crossbow
* Longbow
}}
</syntaxhighlight>
== Parameters ==
=== Main ===
The following parameters modify the navbox as a whole.
{| class="wikitable"
! Parameter
! Description
|-
! <code>template</code><br><code>name</code>
| ('''Required''') Title of the template that the edit icon links to. e.g. <code>Items</code> for template:Items.
|-
! <code>title</code>
| Text that appears at the top of the navbox.
|-
! <code>state</code><br><code>collapsible</code>
| Controls if a navbox should be expanded or collapsed when the page loads. This only affects the whole navbox; if [[#Sections|sections]] are used, they are treated differently.
* <code>expanded</code> ('''default''') - the navbox will start open and readers can collapse it.
* <code>collapsed</code> - the navbox will start closed and readers can expand it.
* <code>off</code>, <code>no</code>, or <code>plain</code> - the navbox will start open and cannot be collapsed.
Advanced users can modify this on a page-by-page basis; see [[support:RANGER navboxes#Controlling the collapsible|the support wiki]] for more information.
|-
! <code>editlinks</code>
| Controls if an edit icon should be displayed at the top-left of the navbox, making it easier for users to interact with the template itself.
* unset ('''default''') - displays the edit icon
* <code>off</code> or <code>no</code> - hides the edit icon
|-
! <code>above</code>
| Text that appears above all list groups, directly below the title.
|-
! <code>below</code>
| Text that appears below all list groups, at the bottom of the navbox.
|-
! <code>striped</code><br><code>evenodd</code>
| Controls if the navbox rows should have zebra striping on even or odd rows, making it easier for users to distinguish two rows apart from each other. If [[#Sections|sections]] are used, each section resets the even/odd counter.
*unset ('''default''') - all rows have the same background
*<code>y</code>, <code>yes</code>, <code>on</code>, <code>striped</code>, or <code>even</code> - even-numbered rows are highlighted
*<code>swap</code> or <code>odd</code> - odd-numbered rows are highlighted
|}
=== Sections ===
The following parameters define sections within the navbox with their own titles.
{| class="wikitable"
! Parameter
! Description
|-
! <code>header''n''</code>
| Text that appears at the top of the section, where ''n'' is any positive integer. If the value is set to two or more <code>-</code> (e.g. <code>--</code>, <code>-----</code>, etc.) the new section will have no header bar and cannot be collapsed.
All groups and lists that are ''n'' or higher will appear in this section unless there is a higher <code>header''n''</code> later in the template. For example, if a navbox defines <code>header1</code> and <code>header4</code>, the first section will include <code>list1</code>, <code>list2</code>, and <code>list3</code> (and any of their sub-lists), while the second section will include all remaining lists starting at <code>list4</code> and their sub-lists.
|-
! <code>header_state</code><br><code>state''n''</code>
| <code>header_state</code> controls if all sections, by default, should be expanded or collapsed when the page loads.
<code>state''n''</code> overrides <code>header_state</code> for the specific section defined by <code>header''n''</code> (where ''n'' is a matching integer).
* <code>expanded</code> ('''default''') - the section will start open and readers can collapse it.
* <code>collapsed</code> - the section will start closed and readers can expand it.
* <code>off</code> or <code>plain</code> - the section will start open and cannot be collapsed.
Advanced users can modify these on a page-by-page basis; see [[support:RANGER navboxes#Controlling the collapsible|the support wiki]] for more information.
Both parameters have no effect on sections with headers set to two or more <code>-</code>, which are always expanded and cannot be collapsed.
|}
=== List groups ===
The following parameters define the list groups.
{| class="wikitable"
! Parameter
! Description
|-
! <code>group''n''</code>
| Text label for a list, which appears on the left on desktop or at the top on mobile, where ''n'' is any positive integer.
This parameter is optional; if a <code>list''n''</code> does not have a matching <code>group''n''</code>, the list will take the full width on desktop.
|-
! <code>list''n''</code>
| A wikitext list, where ''n'' is any positive integer.
|-
! <code>group''n''.''x''</code><br><code>group''n''.''x''.''y''</code><br>etc.
| Text label for sub-lists that appear under <code>group''n''</code>, <code>group''n''.''x''</code>, etc.
|-
! <code>list''n''.''x''</code><br><code>list''n''.''x''.''y''</code><br>etc.
| Wikitext sub-lists.
|}
=== Styling ===
The following parameters add inline styling or your custom CSS classes to specific elements of the navbox.
To assist with text alignment, three default classes are available: <code>align-left</code>, <code>align-center</code>, and <code>align-right</code>.
{| class="wikitable"
! Parameter
! Description
|-
! <code>navbox_style</code><br><code>navbox_class</code>
| Modifies the parent navbox element; <code>class</code> can be used as a shorthand for <code>navbox_class</code>
Two default classes are available:
*<code>pill</code> changes the links to pill-styled rather than dot-separated
*<code>pill-mobile</code> only changes the links to pill-styled on mobile devices
|-
! <code>title_style</code><br><code>title_class</code>
| Modifies the title bar
|-
! <code>above_style</code><br><code>above_class</code>
| Modifies the <code>above</code> text row
|-
! <code>below_style</code><br><code>below_class</code>
| Modifies the <code>below</code> text row
|-
! <code>header_style</code><br><code>header_class</code>
| Modifies all section headers (''not'' the title bar)
|-
! <code>header''n''_style</code><br><code>header''n''_class</code>
| Modifies the specific section header ''n''
|-
! <code>section''n''_style</code><br><code>section''n''_class</code>
| Modifies the container holding the section defined by a matching <code>header''n''</code>
|-
! <code>group_style</code><br><code>group_class</code>
| Modifies all base groups (<code>group''n''</code>), but ''not'' any subgroups (<code>group''n''.''x''</code>, etc.)
|-
! <code>subgroup_style</code><br><code>subgroup_class</code>
| Modifies all subgroups at all levels (<code>group''n''.''x''</code>, <code>group''n''.''x''.''y''</code>, etc.)
|-
! <code>group''A''_style</code><br><code>group''A''_class</code>
| Modifies the specific group ''A'', where ''A'' is any ''n'', ''n''.''x'', ''n''.''x''.''y'', etc.
|-
! <code>list_style</code><br><code>list_class</code>
| Modifies all lists. Note, in this context, "list" refers to the container of a <code>list''n''</code> parameter, not a <code>ul</code> or <code>ol</code> element inside the parameter
|-
! <code>list''A''_style</code><br><code>list''A''_class</code>
| Modifies the specific list ''A'', where ''A'' is any ''n'', ''n''.''x'', ''n''.''x''.''y'', etc.
|}
<noinclude>[[Category:Template documentation]]</noinclude>
e35c990efd00644e63b9735d72ff65818357a1fb
Template:(
10
47
55
2025-11-02T00:43:48Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
{<noinclude>
{{documentation}}</noinclude>
490a0c9c85eff213addd7272fe40f8627a637c75
Template:(/doc
10
48
56
2025-11-02T00:43:48Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#redirect [[Template:((/doc]]
509bb731d447456a18489848c8a1ce38feddabcc
Template:)
10
49
57
2025-11-02T00:43:48Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
}<noinclude>
{{documentation}}</noinclude>
3bf19eb36f7371f1b4b61b8efbba67dfb0e8cfd4
Template:)/doc
10
50
58
2025-11-02T00:43:48Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#redirect [[Template:((/doc]]
509bb731d447456a18489848c8a1ce38feddabcc
Template:(((
10
51
59
2025-11-02T00:43:49Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
{{{<noinclude>
{{documentation}}</noinclude>
fa33084b57c1f33c82290de279827b973ab2fba8
Template:(((/doc
10
52
60
2025-11-02T00:43:49Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#redirect [[Template:((/doc]]
509bb731d447456a18489848c8a1ce38feddabcc
Template:)))
10
53
61
2025-11-02T00:43:49Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
}}}<noinclude>
{{documentation}}</noinclude>
585d94f6fe636b77087dc0d06bfbe6cb69b29987
Template:)))/doc
10
54
62
2025-11-02T00:43:49Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#redirect [[Template:((/doc]]
509bb731d447456a18489848c8a1ce38feddabcc
Template:Documentation/doc
10
55
63
2025-11-02T00:43:49Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
Use {{tl|documentation}} inside of the <code><nowiki><noinclude></noinclude></nowiki></code> section on your template. Then create your template at the <code>/doc</code> subpage of your template.
<noinclude>[[Category:Template documentation]]</noinclude>
055b0481a1967951c59f15a09b92767c90baa8dd
Template:License/CC-BY-NC-ND
10
56
64
2025-11-02T00:43:50Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{License/template
| source = {{{source|}}}
| type = CC-BY-NC-ND
| icon = [[File:CC-BY-NC-ND.svg|x50px|link=https://creativecommons.org/licenses/by-nc-nd/3.0/|CC-BY-NC-ND]]
| text = This file is under the [https://creativecommons.org/licenses/by-nc-nd/3.0/ Creative Commons Attribution-NonCommercial-NoDerivs 3.0 License].
}}</includeonly><noinclude>
This template currently looks like: {{License/CC-BY-NC-ND}}
See {{tl|License}} for full license documentation
[[Category:License templates]]</noinclude>
4ed8a6372d14a167dd9d26f1ae865b1593b76604
65
64
2025-11-02T00:43:50Z
ARTIFICER
564804
Protected "[[Template:License/CC-BY-NC-ND]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<includeonly>{{License/template
| source = {{{source|}}}
| type = CC-BY-NC-ND
| icon = [[File:CC-BY-NC-ND.svg|x50px|link=https://creativecommons.org/licenses/by-nc-nd/3.0/|CC-BY-NC-ND]]
| text = This file is under the [https://creativecommons.org/licenses/by-nc-nd/3.0/ Creative Commons Attribution-NonCommercial-NoDerivs 3.0 License].
}}</includeonly><noinclude>
This template currently looks like: {{License/CC-BY-NC-ND}}
See {{tl|License}} for full license documentation
[[Category:License templates]]</noinclude>
4ed8a6372d14a167dd9d26f1ae865b1593b76604
Template:License/CC-BY-SA
10
57
66
2025-11-02T00:43:50Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{License/template
| source = {{{source|}}}
| type = CC-BY-SA
| icon = [[File:CC-BY-SA.svg|x50px|link=https://creativecommons.org/licenses/by-sa/3.0/|CC-BY-SA]]
| text = This file is under the [https://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-ShareAlike 3.0 License].
}}</includeonly><noinclude>
This template currently looks like: {{License/CC-BY-SA}}
See {{tl|License}} for full license documentation
[[Category:License templates]]</noinclude>
1e471ba76ef084e99bff87e9356d439d400f73de
67
66
2025-11-02T00:43:50Z
ARTIFICER
564804
Protected "[[Template:License/CC-BY-SA]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<includeonly>{{License/template
| source = {{{source|}}}
| type = CC-BY-SA
| icon = [[File:CC-BY-SA.svg|x50px|link=https://creativecommons.org/licenses/by-sa/3.0/|CC-BY-SA]]
| text = This file is under the [https://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-ShareAlike 3.0 License].
}}</includeonly><noinclude>
This template currently looks like: {{License/CC-BY-SA}}
See {{tl|License}} for full license documentation
[[Category:License templates]]</noinclude>
1e471ba76ef084e99bff87e9356d439d400f73de
Template:License/fairuse
10
58
68
2025-11-02T00:43:50Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{License/template
| source = {{{source|}}}
| type = fairuse
| darkIcon = yes
| icon = [[File:IN COPYRIGHT.svg|50px|link=https://rightsstatements.org/page/InC/1.0/?language=en|IN COPYRIGHT]]
| text = This file is copyrighted. It will be used in a way that qualifies as fair use under [https://en.wikipedia.org/wiki/Fair_use#Fair_use_under_United_States_law US copyright law].
}}</includeonly><noinclude>
This template currently looks like: {{License/fairuse}}
See {{tl|License}} for full license documentation
[[Category:License templates]]</noinclude>
3662b685c4d9fa43d4f9342fae34b2f43ba925ef
69
68
2025-11-02T00:43:51Z
ARTIFICER
564804
Protected "[[Template:License/fairuse]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<includeonly>{{License/template
| source = {{{source|}}}
| type = fairuse
| darkIcon = yes
| icon = [[File:IN COPYRIGHT.svg|50px|link=https://rightsstatements.org/page/InC/1.0/?language=en|IN COPYRIGHT]]
| text = This file is copyrighted. It will be used in a way that qualifies as fair use under [https://en.wikipedia.org/wiki/Fair_use#Fair_use_under_United_States_law US copyright law].
}}</includeonly><noinclude>
This template currently looks like: {{License/fairuse}}
See {{tl|License}} for full license documentation
[[Category:License templates]]</noinclude>
3662b685c4d9fa43d4f9342fae34b2f43ba925ef
Template:License
10
59
70
2025-11-02T00:43:51Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{License/{{{1|nolicense}}}|source={{{source|}}}}}</includeonly><noinclude>{{documentation}}</noinclude>
4b84fc940507f8fccb9c60b7f70b5a800a62fe59
71
70
2025-11-02T00:43:51Z
ARTIFICER
564804
Protected "[[Template:License]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<includeonly>{{License/{{{1|nolicense}}}|source={{{source|}}}}}</includeonly><noinclude>{{documentation}}</noinclude>
4b84fc940507f8fccb9c60b7f70b5a800a62fe59
Template:License/CC-PD
10
60
72
2025-11-02T00:43:51Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{License/template
| source = {{{source|}}}
| type = CC-PD
| icon = [[File:CC-PD.svg|x50px|link=|Public Domain]]
| text = This file has been released into the public domain by the copyright holder, its copyright has expired, or it is ineligible for copyright. This applies worldwide.
}}</includeonly><noinclude>
This template currently looks like: {{License/CC-PD}}
See {{tl|License}} for full license documentation
[[Category:License templates]]</noinclude>
23b76ae521833f5a34f0bf73426a53aad8fa9923
73
72
2025-11-02T00:43:51Z
ARTIFICER
564804
Protected "[[Template:License/CC-PD]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<includeonly>{{License/template
| source = {{{source|}}}
| type = CC-PD
| icon = [[File:CC-PD.svg|x50px|link=|Public Domain]]
| text = This file has been released into the public domain by the copyright holder, its copyright has expired, or it is ineligible for copyright. This applies worldwide.
}}</includeonly><noinclude>
This template currently looks like: {{License/CC-PD}}
See {{tl|License}} for full license documentation
[[Category:License templates]]</noinclude>
23b76ae521833f5a34f0bf73426a53aad8fa9923
Template:License/CC-SRR
10
61
74
2025-11-02T00:43:52Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{License/template
| source = {{{source|}}}
| type = CC-SRR
| icon = [[File:CC-SRR.svg|link=|CC-Some Rights Reserved]]
| text = This file is under the Creative Commons Some Rights Reserved License.
}}</includeonly><noinclude>
This template currently looks like: {{License/CC-SRR}}
See {{tl|License}} for full license documentation
[[Category:License templates]]</noinclude>
1ce36d04e501144e6a089ff194fee2b82732e85a
75
74
2025-11-02T00:43:52Z
ARTIFICER
564804
Protected "[[Template:License/CC-SRR]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<includeonly>{{License/template
| source = {{{source|}}}
| type = CC-SRR
| icon = [[File:CC-SRR.svg|link=|CC-Some Rights Reserved]]
| text = This file is under the Creative Commons Some Rights Reserved License.
}}</includeonly><noinclude>
This template currently looks like: {{License/CC-SRR}}
See {{tl|License}} for full license documentation
[[Category:License templates]]</noinclude>
1ce36d04e501144e6a089ff194fee2b82732e85a
Template:License/CC-BY
10
62
76
2025-11-02T00:43:52Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{License/template
| source = {{{source|}}}
| type = CC-BY
| icon = [[File:CC-BY.svg|x50px|link=https://creativecommons.org/licenses/by/3.0/|CC-BY]]
| text = This file is under the [https://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 License].
}}</includeonly><noinclude>
This template currently looks like: {{License/CC-BY}}
See {{tl|License}} for full license documentation
[[Category:License templates]]</noinclude>
49f4317b802ef04c92f4edc474581035768c252e
77
76
2025-11-02T00:43:52Z
ARTIFICER
564804
Protected "[[Template:License/CC-BY]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<includeonly>{{License/template
| source = {{{source|}}}
| type = CC-BY
| icon = [[File:CC-BY.svg|x50px|link=https://creativecommons.org/licenses/by/3.0/|CC-BY]]
| text = This file is under the [https://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 License].
}}</includeonly><noinclude>
This template currently looks like: {{License/CC-BY}}
See {{tl|License}} for full license documentation
[[Category:License templates]]</noinclude>
49f4317b802ef04c92f4edc474581035768c252e
Template:License/CC-BY-ND
10
63
78
2025-11-02T00:43:52Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{License/template
| source = {{{source|}}}
| type = CC-BY-ND
| icon = [[File:CC-BY-ND.svg|x50px|link=https://creativecommons.org/licenses/by-nd/3.0/|CC-BY-ND]]
| text = This file is under the [https://creativecommons.org/licenses/by-nd/3.0/ Creative Commons Attribution-NoDerivs 3.0 License].
}}</includeonly><noinclude>
This template currently looks like: {{License/CC-BY-ND}}
See {{tl|License}} for full license documentation
[[Category:License templates]]</noinclude>
c77af748cb3aab2fce9bfd947149cb3e1ef0a3f0
79
78
2025-11-02T00:43:52Z
ARTIFICER
564804
Protected "[[Template:License/CC-BY-ND]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<includeonly>{{License/template
| source = {{{source|}}}
| type = CC-BY-ND
| icon = [[File:CC-BY-ND.svg|x50px|link=https://creativecommons.org/licenses/by-nd/3.0/|CC-BY-ND]]
| text = This file is under the [https://creativecommons.org/licenses/by-nd/3.0/ Creative Commons Attribution-NoDerivs 3.0 License].
}}</includeonly><noinclude>
This template currently looks like: {{License/CC-BY-ND}}
See {{tl|License}} for full license documentation
[[Category:License templates]]</noinclude>
c77af748cb3aab2fce9bfd947149cb3e1ef0a3f0
Template:License/game
10
64
80
2025-11-02T00:43:53Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly><!--
-->{{#vardefine:rightsholder|<!--
***************************************
***************************************
Step 1/2 [required]
Enter the name of the rightsholder, optionally with a link.
Example without link: indie.io
Example with a URL: [https://www.indie.io/ indie.io]
Edit on the line below this************-->
<!--Edit on the line above this********
***************************************
***************************************
-->}}<!--
continue to step 2
***************************************
***************************************
Step 2/2 [optional]
Enter the TOS link.
Example link: https://www.indie.io/terms-of-service
-->{{#vardefine:tos|<!--
Edit on the line below this************-->
<!--Edit on the line above this********
***************************************
***************************************
-->}}<!--
DON'T EDIT ANYTHING BELOW THIS
-->{{License/template
| source = {{{source|}}}
| type = developer
| darkIcon = yes
| icon = [[File:IN COPYRIGHT.svg|50px|link=https://rightsstatements.org/page/InC/1.0/?language=en|IN COPYRIGHT]]
| text = {{#if:{{#var:rightsholder}}|
<!-- Specific: -->This file is owned by {{#var:rightsholder}} and/or its licensors{{#if:{{#var:tos}}|, and is licensed under the {{#var:rightsholder}} [{{#var:tos}} Terms of Use]}}.<br/>All trademarks and registered trademarks present in the file are proprietary to {{#var:rightsholder}} and/or its licensors.
|
<!-- Generic: -->This file is owned by the applicable game studio and/or its licensors.
}}
}}</includeonly><noinclude>
This template currently looks like: {{License/game}}
See {{tl|License}} for full license documentation
[[Category:License templates]]</noinclude>
f1283ce43eda0d523b8e1f249ebc02470d957b34
81
80
2025-11-02T00:43:53Z
ARTIFICER
564804
Protected "[[Template:License/game]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<includeonly><!--
-->{{#vardefine:rightsholder|<!--
***************************************
***************************************
Step 1/2 [required]
Enter the name of the rightsholder, optionally with a link.
Example without link: indie.io
Example with a URL: [https://www.indie.io/ indie.io]
Edit on the line below this************-->
<!--Edit on the line above this********
***************************************
***************************************
-->}}<!--
continue to step 2
***************************************
***************************************
Step 2/2 [optional]
Enter the TOS link.
Example link: https://www.indie.io/terms-of-service
-->{{#vardefine:tos|<!--
Edit on the line below this************-->
<!--Edit on the line above this********
***************************************
***************************************
-->}}<!--
DON'T EDIT ANYTHING BELOW THIS
-->{{License/template
| source = {{{source|}}}
| type = developer
| darkIcon = yes
| icon = [[File:IN COPYRIGHT.svg|50px|link=https://rightsstatements.org/page/InC/1.0/?language=en|IN COPYRIGHT]]
| text = {{#if:{{#var:rightsholder}}|
<!-- Specific: -->This file is owned by {{#var:rightsholder}} and/or its licensors{{#if:{{#var:tos}}|, and is licensed under the {{#var:rightsholder}} [{{#var:tos}} Terms of Use]}}.<br/>All trademarks and registered trademarks present in the file are proprietary to {{#var:rightsholder}} and/or its licensors.
|
<!-- Generic: -->This file is owned by the applicable game studio and/or its licensors.
}}
}}</includeonly><noinclude>
This template currently looks like: {{License/game}}
See {{tl|License}} for full license documentation
[[Category:License templates]]</noinclude>
f1283ce43eda0d523b8e1f249ebc02470d957b34
Template:License/nolicense
10
65
82
2025-11-02T00:43:53Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{License/template
| source = {{{source|}}}
| type = nolicense
| icon = [[File:Warning-red.svg|50px|link=|No license has been selected.]]
| text = Please select the proper license for this file by adding the proper parameter to <nowiki>{{License}}</nowiki>. See [[Template:License]] for details.
}}</includeonly><noinclude>
This template currently looks like: {{License/nolicense}}
See {{tl|License}} for full license documentation
[[Category:License templates]]</noinclude>
9ddcfb97af577d7f8454e20f985b9456e7a95c77
83
82
2025-11-02T00:43:53Z
ARTIFICER
564804
Protected "[[Template:License/nolicense]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<includeonly>{{License/template
| source = {{{source|}}}
| type = nolicense
| icon = [[File:Warning-red.svg|50px|link=|No license has been selected.]]
| text = Please select the proper license for this file by adding the proper parameter to <nowiki>{{License}}</nowiki>. See [[Template:License]] for details.
}}</includeonly><noinclude>
This template currently looks like: {{License/nolicense}}
See {{tl|License}} for full license documentation
[[Category:License templates]]</noinclude>
9ddcfb97af577d7f8454e20f985b9456e7a95c77
Template:License/CC-BY-NC
10
66
84
2025-11-02T00:43:53Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{License/template
| source = {{{source|}}}
| type = CC-BY-NC
| icon = [[File:CC-BY-NC.svg|x50px|link=https://creativecommons.org/licenses/by-nc/3.0/|CC-BY-NC]]
| text = This file is under the [https://creativecommons.org/licenses/by-nc/3.0/ Creative Commons Attribution-NonCommercial 3.0 License].
}}</includeonly><noinclude>
This template currently looks like: {{License/CC-BY-NC}}
See {{tl|License}} for full license documentation
[[Category:License templates]]</noinclude>
535d8d725e53a0e8f94922ed597baed1353cec21
85
84
2025-11-02T00:43:54Z
ARTIFICER
564804
Protected "[[Template:License/CC-BY-NC]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<includeonly>{{License/template
| source = {{{source|}}}
| type = CC-BY-NC
| icon = [[File:CC-BY-NC.svg|x50px|link=https://creativecommons.org/licenses/by-nc/3.0/|CC-BY-NC]]
| text = This file is under the [https://creativecommons.org/licenses/by-nc/3.0/ Creative Commons Attribution-NonCommercial 3.0 License].
}}</includeonly><noinclude>
This template currently looks like: {{License/CC-BY-NC}}
See {{tl|License}} for full license documentation
[[Category:License templates]]</noinclude>
535d8d725e53a0e8f94922ed597baed1353cec21
Template:License/CC-BY-NC-SA
10
67
86
2025-11-02T00:43:54Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{License/template
| source = {{{source|}}}
| type = CC-BY-NC-SA
| icon = [[File:CC-BY-NC-SA.svg|x50px|link=https://creativecommons.org/licenses/by-nc-sa/3.0/|CC-BY-NC-SA]]
| text = This file is under the [https://creativecommons.org/licenses/by-nc-sa/3.0/ Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License].
}}</includeonly><noinclude>
This template currently looks like: {{License/CC-BY-NC-SA}}
See {{tl|License}} for full license documentation
[[Category:License templates]]</noinclude>
385fc8e61d98dd5ed6d4fa25b0eacf17cbca1218
87
86
2025-11-02T00:43:54Z
ARTIFICER
564804
Protected "[[Template:License/CC-BY-NC-SA]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<includeonly>{{License/template
| source = {{{source|}}}
| type = CC-BY-NC-SA
| icon = [[File:CC-BY-NC-SA.svg|x50px|link=https://creativecommons.org/licenses/by-nc-sa/3.0/|CC-BY-NC-SA]]
| text = This file is under the [https://creativecommons.org/licenses/by-nc-sa/3.0/ Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License].
}}</includeonly><noinclude>
This template currently looks like: {{License/CC-BY-NC-SA}}
See {{tl|License}} for full license documentation
[[Category:License templates]]</noinclude>
385fc8e61d98dd5ed6d4fa25b0eacf17cbca1218
Template:License/CC0
10
68
88
2025-11-02T00:43:54Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{License/template
| source = {{{source|}}}
| type = CC0
| icon = [[File:CC-0.svg|x50px|link=https://creativecommons.org/publicdomain/zero/1.0/|CC0]]
| text = This file is under the [https://creativecommons.org/publicdomain/zero/1.0/ CC0 1.0 License].
}}</includeonly><noinclude>
This template currently looks like: {{License/CC0}}
See {{tl|License}} for full license documentation
[[Category:License templates]]</noinclude>
a6ae218b1382bcbe6f0e6e98ef272e4355dd7205
89
88
2025-11-02T00:43:54Z
ARTIFICER
564804
Protected "[[Template:License/CC0]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<includeonly>{{License/template
| source = {{{source|}}}
| type = CC0
| icon = [[File:CC-0.svg|x50px|link=https://creativecommons.org/publicdomain/zero/1.0/|CC0]]
| text = This file is under the [https://creativecommons.org/publicdomain/zero/1.0/ CC0 1.0 License].
}}</includeonly><noinclude>
This template currently looks like: {{License/CC0}}
See {{tl|License}} for full license documentation
[[Category:License templates]]</noinclude>
a6ae218b1382bcbe6f0e6e98ef272e4355dd7205
Template:License/doc
10
69
90
2025-11-02T00:43:54Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
This template is to be used under a ''Licensing'' heading on file pages to denote the file's license.
== Available licenses ==
=== Game ===
* Usage: <nowiki>{{License|game}}</nowiki>
{{License|game}}
=== Fairuse ===
* Usage: <nowiki>{{License|fairuse}}</nowiki>
{{License|fairuse}}
=== CC0 ===
* Usage: <nowiki>{{License|CC0}}</nowiki>
{{License|CC0}}
=== CC-BY-NC-ND ===
* Usage: <nowiki>{{License|CC-BY-NC-ND}}</nowiki>
{{License|CC-BY-NC-ND}}
=== CC-BY-NC-SA ===
* Usage: <nowiki>{{License|CC-BY-NC-SA}}</nowiki>
{{License|CC-BY-NC-SA}}
=== CC-BY-NC ===
* Usage: <nowiki>{{License|CC-BY-NC}}</nowiki>
{{License|CC-BY-NC}}
=== CC-BY-ND ===
* Usage: <nowiki>{{License|CC-BY-ND}}</nowiki>
{{License|CC-BY-ND}}
=== CC-BY-SA ===
* Usage: <nowiki>{{License|CC-BY-SA}}</nowiki>
{{License|CC-BY-SA}}
=== CC-BY ===
* Usage: <nowiki>{{License|CC-BY}}</nowiki>
{{License|CC-BY}}
=== CC-PD ===
* Usage: <nowiki>{{License|CC-PD}}</nowiki>
{{License|CC-PD}}
=== CC-SRR ===
* Usage: <nowiki>{{License|CC-SRR}}</nowiki>
{{License|CC-SRR}}
=== Permission ===
* Usage: <nowiki>{{License|permission}}</nowiki>
{{License|permission}}
=== No license ===
'''Providing no parameter (or invalid one) defaults to the nolicense notice:'''
<nowiki>{{License}}</nowiki>{{License}}
== Specifying source ==
'''Source parameter (optional):'''
The source parameter accepts a url to the source where the file came from if necessary for attribution.
Example:
<nowiki>{{License|game|source=https://indie.io/}}</nowiki>
{{License|game|source=https://indie.io/}}
<includeonly>
[[Category:License templates]]
</includeonly>
<noinclude>[[Category:Template documentation]]</noinclude>
5b334ee591fa6a0867f5d8e685e580b5b6c21334
Template:License/Fairuse
10
70
91
2025-11-02T00:43:55Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#redirect [[Template:License/fairuse]]
ecb7db41961bb5256d571593ca3f90ae1e199a3e
Template:Clear
10
71
92
2025-11-02T00:43:55Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<div style="clear:{{{1|both}}};" class={{{class|}}}></div><noinclude>
{{documentation}}
</noinclude>
5b24b9fd5cc166a8c486e2422d5df465206ed39c
Template:Ml
10
72
93
2025-11-02T00:43:55Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<code>{{[[Module:{{{1}}}|{{{1}}}]]}}<sup>m</sup>{{#if:{{{2|}}}|.{{{2}}}()}}</code><noinclude>
* <code><nowiki>{{Ml|Infobox}}</nowiki></code> generates {{Ml|Infobox}}.
* <code><nowiki>{{Ml|ArgsUtil|merge}}</nowiki></code> generates {{Ml|ArgsUtil|merge}}.
[[Category:Formatting templates]]
</noinclude>
0c69bf8d7c3319f1cf2aa68f4b80261257291560
Template:(!
10
73
94
2025-11-02T00:43:55Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{|</includeonly><noinclude>{{documentation}}</noinclude>
74ba0a1ff1b77cf5303bb4141456601530bb12dd
Template:!-
10
74
95
2025-11-02T00:43:56Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
|-<noinclude>{{documentation}}</noinclude>
636f9e440c24f4a3fe28b49cebd1808c3de8a814
Template:!)
10
75
96
2025-11-02T00:43:56Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
|}<noinclude>{{documentation}}</noinclude>
b2debea163716e114d1ea46e65a63d7a1ae84bc0
Template:(!/doc
10
76
97
2025-11-02T00:43:56Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#redirect [[Template:((/doc]]
509bb731d447456a18489848c8a1ce38feddabcc
Template:!-/doc
10
77
98
2025-11-02T00:43:57Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#redirect [[Template:((/doc]]
509bb731d447456a18489848c8a1ce38feddabcc
Template:!)/doc
10
78
99
2025-11-02T00:43:57Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#redirect [[Template:((/doc]]
509bb731d447456a18489848c8a1ce38feddabcc
Template:Pipe
10
79
100
2025-11-02T00:43:58Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
|<noinclude>{{documentation}}</noinclude>
9d1875aa686e4e25a0994448a39d057e91541788
Template:Pipe/doc
10
80
101
2025-11-02T00:43:58Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#redirect [[Template:((/doc]]
509bb731d447456a18489848c8a1ce38feddabcc
Template:!!
10
81
102
2025-11-02T00:43:58Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
||<noinclude>{{documentation}}</noinclude>
02fb31115eef5c15d6612ac334bf5a5d83155c0a
Template:!!/doc
10
82
103
2025-11-02T00:43:59Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#redirect [[Template:((/doc]]
509bb731d447456a18489848c8a1ce38feddabcc
Template:License/template
10
83
104
2025-11-02T00:43:59Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly><!--
--><div class="license {{{type|}}}" style="border: 1px solid var(--wiki-content-border-color); background: var(--wiki-content-background-color--secondary); align-items: center; padding: 5px; display: flex; gap: 1em;">
<div class="icon {{#if:{{{darkIcon|}}}|invert-on-dark}}">{{{icon|}}}</div>
<div class="text">{{{text|}}}{{#if:{{{source|}}}|<br/><span class="source">Source: {{{source|}}}</span>}}{{{text2|}}}</div>
</div><!--
--></includeonly><noinclude>{{documentation|Template:License/doc}}</noinclude>
7d0e694e6a42a5368b4b62ce6c01bfa2fb4e67b8
105
104
2025-11-02T00:43:59Z
ARTIFICER
564804
Protected "[[Template:License/template]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<includeonly><!--
--><div class="license {{{type|}}}" style="border: 1px solid var(--wiki-content-border-color); background: var(--wiki-content-background-color--secondary); align-items: center; padding: 5px; display: flex; gap: 1em;">
<div class="icon {{#if:{{{darkIcon|}}}|invert-on-dark}}">{{{icon|}}}</div>
<div class="text">{{{text|}}}{{#if:{{{source|}}}|<br/><span class="source">Source: {{{source|}}}</span>}}{{{text2|}}}</div>
</div><!--
--></includeonly><noinclude>{{documentation|Template:License/doc}}</noinclude>
7d0e694e6a42a5368b4b62ce6c01bfa2fb4e67b8
Template:*
10
84
106
2025-11-02T00:43:59Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
• <noinclude>
{{doc}}
[[Category:Formatting templates]]
</noinclude>
81a7f0051da7b8f4a0548d91c5eb429a974fac91
Template:*/doc
10
85
107
2025-11-02T00:44:00Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
This is the '''bullet''' template; it looks like this: [ • ]
It works similarly to the HTML markup sequence: [<code>'''&nbsp;&bull;&nbsp;'''</code>], that is, a non-breaking space, a bullet and a non-breaking space.
This template is used when you want a larger bullet than a bold middot ['''·'''], but something smaller than an en dash [–].
<noinclude>[[Category:Template documentation]]</noinclude>
ea04fe63a10dc333ed9c48bfc397debb11682f1e
Template:Key
10
86
108
2025-11-02T00:44:00Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly><!--
-->{{#vardefine:platform | {{#if: {{{2|}}} | {{#switch: {{lc:{{{1|}}}}}
<!-- Desktop -->
|mouse
|keyboard=keyboard
<!-- Mobile -->
|gesture=gesture
<!-- Microsoft -->
|xboxseries
|xbox=Xbox
|xbox one
|xbone
|xbox1
|xboxone=xboxone
|xbox 360
|xb360
|xbox360
|360=360
<!-- Sony -->
|ps
|ps5
|playstation
|ds
|dualsense=DualSense
|playstation 4
|ps4=PS4
|playstation 3
|ps3=ps3
<!-- Nintendo -->
|ns
|switch=Switch
|wii=wii
|gamecube
|ngc
|gc
|gcn=Gamecube
}} | undefined }} }}<!--
-->{{#vardefine:key | {{#if: {{{2|}}} | {{ucfirst:{{{2}}}}} | {{ucfirst:{{{1}}}}} }} }}<!--
-->{{#vardefine:img | {{#if: {{{2|}}} | [[File:{{#var:platform}} {{#switch: {{#var:platform}}
|Gamecube={{lc:{{#var:key}}}}
|{{#var:key}}}}.{{#switch: {{#var:platform}}
|Gamecube=svg
|png}}|x25px|link=]] }} | Undefined }}<!--
--><span class="key">{{#var:img}}</span><!--
--></includeonly><!--
--><noinclude>{{doc}}</noinclude>
e1a9e85405b630a77bc33bd39105e91861ecc3c0
Template:Key/doc
10
87
109
2025-11-02T00:44:01Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<templatedata>
{
"params": {
"1": {
"label": "Console or Device",
"description": "The console for the controller, or the device, with the button to display",
"type": "string",
"suggestedvalues": [
"Keyboard",
"Gesture",
"Xbox",
"PS5",
"PS4",
"PS3",
"Switch",
"Wii",
"GameCube"
]
},
"2": {
"label": "Key or Button",
"description": "The name of the key or button to display",
"type": "string"
}
},
"format": "inline",
"description": "This is an icon template used to display controls, buttons, and keys from a computer keyboard or video game controllers.",
"paramOrder": [
"1",
"2"
]
}
</templatedata>
==Examples==
<tabber>
|-|Desktop=
Images source: [[dev:Category:Desktop input images]]
=== Keyboard ===
<code><nowiki>{{Key|Keyboard|A}}</nowiki></code> {{Key|Keyboard|A}}
<code><nowiki>{{Key|Keyboard|A outline}}</nowiki></code> {{Key|Keyboard|A outline}}
=== Mouse ===
<code><nowiki>{{Key|Keyboard|Left}}</nowiki></code> {{Key|Keyboard|White Mouse Left}}
<code><nowiki>{{Key|Keyboard|Right}}</nowiki></code> {{Key|Keyboard|White Mouse Right}}
|-|Mobile={{:Template:Key/doc/Gesture}}
|-|Xbox={{:Template:Key/doc/Xbox}}
|-|DualSense={{:Template:Key/doc/DualSense}}
|-|PlayStation 4={{:Template:Key/doc/PS4}}
|-|Nintendo Switch={{:Template:Key/doc/Nintendo Switch}}
|-|Nintendo GameCube=
Images source: [[dev:Category:Nintendo GameCube input images]]
=== Controller ===
<code><nowiki>{{Key|GameCube|controller}}</nowiki></code> {{Key|GameCube|controller}}
=== Face buttons ===
<code><nowiki>{{Key|GameCube|A}}</nowiki></code> {{Key|GameCube|A}}
<code><nowiki>{{Key|GameCube|A outline}}</nowiki></code> {{Key|GameCube|A outline}}
<code><nowiki>{{Key|GameCube|A color}}</nowiki></code> {{Key|GameCube|A color}}
<code><nowiki>{{Key|GameCube|A color outline}}</nowiki></code> {{Key|GameCube|A color outline}}
<code><nowiki>{{Key|GameCube|B}}</nowiki></code> {{Key|GameCube|B}}
<code><nowiki>{{Key|GameCube|B outline}}</nowiki></code> {{Key|GameCube|B outline}}
<code><nowiki>{{Key|GameCube|B color}}</nowiki></code> {{Key|GameCube|B color}}
<code><nowiki>{{Key|GameCube|B color outline}}</nowiki></code> {{Key|GameCube|B color outline}}
<code><nowiki>{{Key|GameCube|X}}</nowiki></code> {{Key|GameCube|X}}
<code><nowiki>{{Key|GameCube|X outline}}</nowiki></code> {{Key|GameCube|X outline}}
<code><nowiki>{{Key|GameCube|Y}}</nowiki></code> {{Key|GameCube|Y}}
<code><nowiki>{{Key|GameCube|Y outline}}</nowiki></code> {{Key|GameCube|Y outline}}
=== Other buttons ===
<code><nowiki>{{Key|GameCube|start}}</nowiki></code> {{Key|GameCube|start}}
<code><nowiki>{{Key|GameCube|start outline}}</nowiki></code> {{Key|GameCube|start outline}}
<code><nowiki>{{Key|GameCube|left trigger}}</nowiki></code> {{Key|GameCube|left trigger}}
<code><nowiki>{{Key|GameCube|left trigger outline}}</nowiki></code> {{Key|GameCube|left trigger outline}}
<code><nowiki>{{Key|GameCube|right trigger}}</nowiki></code> {{Key|GameCube|right trigger}}
<code><nowiki>{{Key|GameCube|right trigger outline}}</nowiki></code> {{Key|GameCube|right trigger outline}}
<code><nowiki>{{Key|GameCube|Z}}</nowiki></code> {{Key|GameCube|Z}}
<code><nowiki>{{Key|GameCube|Z outline}}</nowiki></code> {{Key|GameCube|Z outline}}
<code><nowiki>{{Key|GameCube|Z color}}</nowiki></code> {{Key|GameCube|Z color}}
<code><nowiki>{{Key|GameCube|Z color outline}}</nowiki></code> {{Key|GameCube|Z color outline}}
=== Left stick ===
<code><nowiki>{{Key|GameCube|stick}}</nowiki></code> {{Key|GameCube|stick}}
<code><nowiki>{{Key|GameCube|stick left}}</nowiki></code> {{Key|GameCube|stick left}}
<code><nowiki>{{Key|GameCube|stick right}}</nowiki></code> {{Key|GameCube|stick right}}
<code><nowiki>{{Key|GameCube|stick horizontal}}</nowiki></code> {{Key|GameCube|stick horizontal}}
<code><nowiki>{{Key|GameCube|stick up}}</nowiki></code> {{Key|GameCube|stick up}}
<code><nowiki>{{Key|GameCube|stick down}}</nowiki></code> {{Key|GameCube|stick down}}
<code><nowiki>{{Key|GameCube|stick vertical}}</nowiki></code> {{Key|GameCube|stick vertical}}
=== C-stick ===
<code><nowiki>{{Key|GameCube|c stick}}</nowiki></code> {{Key|GameCube|c stick}}
<code><nowiki>{{Key|GameCube|c stick color}}</nowiki></code> {{Key|GameCube|c stick color}}
<code><nowiki>{{Key|GameCube|c stick left}}</nowiki></code> {{Key|GameCube|c stick left}}
<code><nowiki>{{Key|GameCube|c stick left color}}</nowiki></code> {{Key|GameCube|c stick left color}}
<code><nowiki>{{Key|GameCube|c stick right}}</nowiki></code> {{Key|GameCube|c stick right}}
<code><nowiki>{{Key|GameCube|c stick right color}}</nowiki></code> {{Key|GameCube|c stick right color}}
<code><nowiki>{{Key|GameCube|c stick horizontal}}</nowiki></code> {{Key|GameCube|c stick horizontal}}
<code><nowiki>{{Key|GameCube|c stick horizontal color}}</nowiki></code> {{Key|GameCube|c stick horizontal color}}
<code><nowiki>{{Key|GameCube|c stick up}}</nowiki></code> {{Key|GameCube|c stick up}}
<code><nowiki>{{Key|GameCube|c stick up color}}</nowiki></code> {{Key|GameCube|c stick up color}}
<code><nowiki>{{Key|GameCube|c stick down}}</nowiki></code> {{Key|GameCube|c stick down}}
<code><nowiki>{{Key|GameCube|c stick down color}}</nowiki></code> {{Key|GameCube|c stick down color}}
<code><nowiki>{{Key|GameCube|c stick vertical}}</nowiki></code> {{Key|GameCube|c stick vertical}}
<code><nowiki>{{Key|GameCube|c stick vertical color}}</nowiki></code> {{Key|GameCube|c stick vertical color}}
=== Directional pad ===
<code><nowiki>{{Key|GameCube|dpad}}</nowiki></code> {{Key|GameCube|dpad}}
<code><nowiki>{{Key|GameCube|dpad outline}}</nowiki></code> {{Key|GameCube|dpad outline}}
<code><nowiki>{{Key|GameCube|dpad all}}</nowiki></code> {{Key|GameCube|dpad all}}
<code><nowiki>{{Key|GameCube|dpad left}}</nowiki></code> {{Key|GameCube|dpad left}}
<code><nowiki>{{Key|GameCube|dpad left outline}}</nowiki></code> {{Key|GameCube|dpad left outline}}
<code><nowiki>{{Key|GameCube|dpad right}}</nowiki></code> {{Key|GameCube|dpad right}}
<code><nowiki>{{Key|GameCube|dpad right outline}}</nowiki></code> {{Key|GameCube|dpad right outline}}
<code><nowiki>{{Key|GameCube|dpad horizontal}}</nowiki></code> {{Key|GameCube|dpad horizontal}}
<code><nowiki>{{Key|GameCube|dpad horizontal outline}}</nowiki></code> {{Key|GameCube|dpad horizontal outline}}
<code><nowiki>{{Key|GameCube|dpad up}}</nowiki></code> {{Key|GameCube|dpad up}}
<code><nowiki>{{Key|GameCube|dpad up outline}}</nowiki></code> {{Key|GameCube|dpad up outline}}
<code><nowiki>{{Key|GameCube|dpad down}}</nowiki></code> {{Key|GameCube|dpad down}}
<code><nowiki>{{Key|GameCube|dpad down outline}}</nowiki></code> {{Key|GameCube|dpad down outline}}
<code><nowiki>{{Key|GameCube|dpad vertical}}</nowiki></code> {{Key|GameCube|dpad vertical}}
<code><nowiki>{{Key|GameCube|dpad vertical outline}}</nowiki></code> {{Key|GameCube|dpad vertical outline}}
</tabber>
<noinclude>[[Category:Key template documentation]]</noinclude>
22596b56b7a13ee3df540bfd7c3463d45fa8b74e
Template:Key/doc/Gesture
10
88
110
2025-11-02T00:44:01Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
Images source: [[dev:Category:Gesture input images]]
=== Fingers ===
<code><nowiki>{{key|gesture|Finger Front}}</nowiki></code>
{{key|gesture|Finger Front}}
<code><nowiki>{{key|gesture|Finger Side}}</nowiki></code>
{{key|gesture|Finger Side}}
=== Tap & hold ===
<code><nowiki>{{key|gesture|Tap}}</nowiki></code>
{{key|gesture|Tap}}
<code><nowiki>{{key|gesture|Double Tap}}</nowiki></code>
{{key|gesture|Double Tap}}
<code><nowiki>{{key|gesture|Hold}}</nowiki></code>
{{key|gesture|Hold}}
=== Swipe motions ===
<code><nowiki>{{key|gesture|Swipe Bottom Left}}</nowiki></code>
{{key|gesture|Swipe Bottom Left}}
<code><nowiki>{{key|gesture|Swipe Bottom Right}}</nowiki></code>
{{key|gesture|Swipe Bottom Right}}
<code><nowiki>{{key|gesture|Swipe Down}}</nowiki></code>
{{key|gesture|Swipe Down}}
<code><nowiki>{{key|gesture|Swipe Left}}</nowiki></code>
{{key|gesture|Swipe Left}}
<code><nowiki>{{key|gesture|Swipe Right}}</nowiki></code>
{{key|gesture|Swipe Right}}
<code><nowiki>{{key|gesture|Swipe Top Left}}</nowiki></code>
{{key|gesture|Swipe Top Left}}
<code><nowiki>{{key|gesture|Swipe Top Right}}</nowiki></code>
{{key|gesture|Swipe Top Right}}
<code><nowiki>{{key|gesture|Swipe Up}}</nowiki></code>
{{key|gesture|Swipe Up}}
=== Zoom & scroll ===
<code><nowiki>{{key|gesture|Zoom In}}</nowiki></code>
{{key|gesture|Zoom In}}
<code><nowiki>{{key|gesture|Zoom Out}}</nowiki></code>
{{key|gesture|Zoom Out}}
<code><nowiki>{{key|gesture|Scroll Down}}</nowiki></code>
{{key|gesture|Scroll Down}}
<code><nowiki>{{key|gesture|Scroll Left}}</nowiki></code>
{{key|gesture|Scroll Left}}
<code><nowiki>{{key|gesture|Scroll Right}}</nowiki></code>
{{key|gesture|Scroll Right}}
<code><nowiki>{{key|gesture|Scroll Up}}</nowiki></code>
{{key|gesture|Scroll Up}}
=== Circular motions ===
<code><nowiki>{{key|gesture|Double Rotate}</nowiki></code>
{{key|gesture|Double Rotate}}
<code><nowiki>{{key|gesture|Full Circle}}</nowiki></code>
{{key|gesture|Full Circle}}
<code><nowiki>{{key|gesture|Half Circle}}</nowiki></code>
{{key|gesture|Half Circle}}
<code><nowiki>{{key|gesture|Quarter Circle}}</nowiki></code>
{{key|gesture|Quarter Circle}}
__NOTOC__
<noinclude>[[Category:Key template documentation]]</noinclude>
0a595b125cc6dbd6ad531c1e989d1929eaf1c6e2
Template:Key/doc/PS4
10
89
111
2025-11-02T00:44:02Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
Images source: [[dev:Category:PS4 input images]]
=== D-pad & sticks ===
<code><nowiki>{{key|PS4|Dpad}}</nowiki></code>
{{key|PS4|Dpad}}
<code><nowiki>{{key|PS4|Left}}</nowiki></code>
{{key|PS4|Left}}
<code><nowiki>{{key|PS4|Right}}</nowiki></code>
{{key|PS4|Right}}
<code><nowiki>{{key|PS4|Up}}</nowiki></code>
{{key|PS4|Up}}
<code><nowiki>{{key|PS4|Down}}</nowiki></code>
{{key|PS4|Down}}
<code><nowiki>{{key|PS4|Left Stick}}</nowiki></code>
{{key|PS4|Left Stick}}
<code><nowiki>{{key|PS4|Right Stick}}</nowiki></code>
{{key|PS4|Right Stick}}
<code><nowiki>{{key|PS4|Touch Pad}}</nowiki></code>
{{key|PS4|Touch Pad}}
=== Front buttons ===
<code><nowiki>{{key|PS4|Circle}}</nowiki></code>
{{key|PS4|Circle}}
<code><nowiki>{{key|PS4|Cross}}</nowiki></code>
{{key|PS4|Cross}}
<code><nowiki>{{key|PS4|Square}}</nowiki></code>
{{key|PS4|Square}}
<code><nowiki>{{key|PS4|Triangle}}</nowiki></code>
{{key|PS4|Triangle}}
<code><nowiki>{{key|PS4|Share}}</nowiki></code>
{{key|PS4|Share}}
<code><nowiki>{{key|PS4|Options}}</nowiki></code>
{{key|PS4|Options}}
=== Rear buttons ===
<code><nowiki>{{key|PS4|L1}}</nowiki></code>
{{key|PS4|L1}}
<code><nowiki>{{key|PS4|R1}}</nowiki></code>
{{key|PS4|R1}}
<code><nowiki>{{key|PS4|L2}}</nowiki></code>
{{key|PS4|L2}}
<code><nowiki>{{key|PS4|R2}}</nowiki></code>
{{key|PS4|R2}}
<noinclude>[[Category:Key template documentation]]</noinclude>
1672e7f0dcd4db09545c96936cfbabcab681cfeb
Template:Key/doc/Nintendo Switch
10
90
112
2025-11-02T00:44:02Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
Images source: [[dev:Category:Nintendo Switch input images]]
=== Nintendo Switch ===
<code><nowiki>{{Key|Switch|a}}</nowiki></code>
{{Key|Switch|a}}
<code><nowiki>{{Key|Switch|b}}</nowiki></code>
{{Key|Switch|b}}
<code><nowiki>{{Key|Switch|x}}</nowiki></code>
{{Key|Switch|x}}
<code><nowiki>{{Key|Switch|y}}</nowiki></code>
{{Key|Switch|y}}
<code><nowiki>{{Key|Switch|Left Stick}}</nowiki></code>
{{Key|Switch|Left Stick}}
<code><nowiki>{{Key|Switch|Right Stick}}</nowiki></code>
{{Key|Switch|Right Stick}}
<code><nowiki>{{Key|Switch|Left Stick Press}}</nowiki></code>
{{Key|Switch|Left Stick Press}}
<code><nowiki>{{Key|Switch|Right Stick Press}}</nowiki></code>
{{Key|Switch|Right Stick Press}}
<code><nowiki>{{Key|Switch|-}}</nowiki></code>
{{Key|Switch|-}}
<code><nowiki>{{Key|Switch|+}}</nowiki></code>
{{Key|Switch|+}}
<code><nowiki>{{Key|Switch|Capture}}</nowiki></code>
{{Key|Switch|Capture}}
<code><nowiki>{{Key|Switch|HOME}}</nowiki></code>
{{Key|Switch|HOME}}
<code><nowiki>{{Key|Switch|L}}</nowiki></code>
{{Key|Switch|L}}
<code><nowiki>{{Key|Switch|R}}</nowiki></code>
{{Key|Switch|R}}
<code><nowiki>{{Key|Switch|ZL}}</nowiki></code>
{{Key|Switch|ZL}}
<code><nowiki>{{Key|Switch|ZR}}</nowiki></code>
{{Key|Switch|ZR}}
=== Pro Controller ===
<code><nowiki>{{Key|Switch|Pro Control Pad}}</nowiki></code>
{{Key|Switch|Pro Control Pad}}
<code><nowiki>{{Key|Switch|Pro Control Pad Left}}</nowiki></code>
{{Key|Switch|Pro Control Pad Left}}
<code><nowiki>{{Key|Switch|Pro Control Pad Right}}</nowiki></code>
{{Key|Switch|Pro Control Pad Right}}
<code><nowiki>{{Key|Switch|Pro Control Pad Up}}</nowiki></code>
{{Key|Switch|Pro Control Pad Up}}
<code><nowiki>{{Key|Switch|Pro Control Pad Down}}</nowiki></code>
{{Key|Switch|Pro Control Pad Down}}
=== Joy-Con ===
<code><nowiki>{{Key|Switch|Directional Left}}</nowiki></code>
{{Key|Switch|Directional Left}}
<code><nowiki>{{Key|Switch|Directional Right}}</nowiki></code>
{{Key|Switch|Directional Right}}
<code><nowiki>{{Key|Switch|Directional Up}}</nowiki></code>
{{Key|Switch|Directional Up}}
<code><nowiki>{{Key|Switch|Directional Down}}</nowiki></code>
{{Key|Switch|Directional Down}}
==== Diagrams ====
<code><nowiki>{{Key|Switch|Joy-Con}}</nowiki></code>
{{Key|Switch|Joy-Con}}
<code><nowiki>{{Key|Switch|Joy-Con Separate}}</nowiki></code>
{{Key|Switch|Joy-Con Separate}}
<code><nowiki>{{Key|Switch|Joy-Con Left}}</nowiki></code>
{{Key|Switch|Joy-Con Left}}
<code><nowiki>{{Key|Switch|Joy-Con Right}}</nowiki></code>
{{Key|Switch|Joy-Con Right}}
__NOTOC__
<noinclude>[[Category:Key template documentation]]</noinclude>
34ef402e3bd539920ee4247d68882ecb53fc6eda
Template:Spoiler
10
91
113
2025-11-02T00:44:02Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly><!--
Base code written for Terraria Wiki: https://terraria.wiki.gg/wiki/Template:Spoiler
NOTE: This template needs a JavaScript function in MediaWiki:Common.js or MediaWiki:Vector.js to work, as well as styling in MediaWiki:Common.css or MediaWiki:Vector.css for the related classes
-->{{#vardefine:element|{{#if:{{{block|}}}|div|span}}}}<!--
-->{{#tag:{{#var:element}}|{{#tag:{{#var:element}}|{{{1|}}}}}|class=spoiler-content {{{class|}}}|id={{{id|}}}|style={{{css|{{{style|}}}}}} }}<!--
-->[[Category:Pages with spoilers]]<!--
--></includeonly><noinclude>
{{doc}}
[[Category:Formatting templates]]
</noinclude>
2da5f6bb4ec1204941f5ba21a2196cd35eccdb23
Template:Spoiler/doc
10
92
114
2025-11-02T00:44:03Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
This template is used to mark text and other elements as spoilers. Users can click or optionally hover to reveal their content.
== The hoverShowSpoilers gadget ==
Users can enable the <code>[[MediaWiki:Gadgets/hoverShowSpoilers|hoverShowSpoilers]]</code> gadget to make spoilers show on hover, not just on click. The code for this gadget can be found at [[MediaWiki:Gadgets/hoverShowSpoilers/main.css]].
== Examples ==
{| class="wikitable"
! Code !! Result
|-
| <code><nowiki>{{spoiler|spoiler text}}</nowiki></code> (Click to toggle) || {{spoiler|spoiler text}}
|-
| <code><nowiki>{{spoiler|spoiler text with a [[Template:Navbox|link]]}}</nowiki></code> (Click to toggle) || {{spoiler|spoiler text with a [[Template:Navbox|link]]}}
|-
| <pre>
{{spoiler|block=y|Really long spoiler that spans multiple lines
It even has a bulleted list inside it:
* Item a
* Item b
* [[Special:Random|Item c]]
}}</pre>
|{{spoiler|block=y|Really long spoiler that spans multiple lines
It even has a bulleted list inside it:
* Item a
* Item b
* [[Special:Random|Item c]]
}}
|}
== Dependencies ==
For this template to work properly, you need the following:
* The <code>spoilers</code> gadget with JavaScript code for toggling the <code>.spoiler</code> class on/off on click:
** [[MediaWiki:Gadgets/spoilers]]
** [[MediaWiki:Gadgets/spoilers/main.js]]
* The <code>.spoiler-content</code> and any related classes, found in [[MediaWiki:Common.css]].
== Source ==
Base code adapted from [[wgg:terraria:Template:Spoiler|Template:Spoiler on Terraria Wiki]].
==TemplateData==
<templatedata>
{
"params": {
"1": {
"aliases": [
"text"
],
"label": "Text",
"description": "The text to be shown.",
"example": "Character A died during the battle.",
"type": "content",
"required": true
},
"hover": {
"label": "Show on Hover?",
"description": "Show spoiler text on mouse hover.",
"example": "hover=yes",
"type": "boolean",
"default": "hover=no"
},
"block": {
"label": "Display as block?",
"description": "If given, display the spoiler as a block instead of inline. Useful for long spoilers spanning multiple lines or using block-level elements like lists.",
"example": "y",
"type": "boolean",
"suggested": true
},
"class": {
"label": "Class",
"description": "A class or classes to apply to the spoiler",
"type": "string"
},
"id": {
"label": "ID",
"description": "A CSS ID to apply to the spoiler.",
"type": "string"
},
"style": {
"description": "Inline CSS styles to pass in.",
"type": "string",
"aliases": [
"css"
],
"label": "Style"
}
},
"description": "This template can be used to mark text as a spoiler.",
"maps": {
"1": {}
},
"paramOrder": [
"1",
"hover",
"block",
"class",
"id",
"style"
],
"format": "inline"
}
</templatedata>
<noinclude>[[Category:Template documentation]]</noinclude>
bae231a84e57129ec12ba47e554ed42e76c185e0
Template:Link icon
10
93
115
2025-11-02T00:44:03Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{#vardefine:target|{{{1|}}}<!-- end vd -->}}<!--
-->{{#vardefine:display|{{#if:{{{2|}}}|{{{2}}}|{{{1}}}<!-- end if -->}}<!-- end vd -->}}<!--
-->{{#vardefine:iconSize|1.2em}}<!--
-->{{#vardefine:lineHeight|1lh}}<!--
-->{{#vardefine:fileExists|{{filepath:{{#var:target}} ({{{type}}}).png}}}}<!--
-->{{#ifeq: {{{2|}}} | notext <!-- start if notext
-->|<span class="link-icon notext" style="--link-icon-size: {{#var:iconSize}}; --link-icon-line-height: {{#var:lineHeight}};"><!-- start notext icon element
-->{{#if: {{#var:fileExists}} <!-- start icon if
-->| <span class="regular">[[File:{{#var:target}} ({{{type}}}).png|link={{#var:target}}|alt=]]</span><!-- end regular icon
-->| <span class="fallback">[[File:{{{1}}} ({{{type}}}).png|?]]</span><!-- end fallback icon (?)
-->}}<!-- end icon if
--></span><!-- end notext icon
-->|<span class="link-icon" style="--link-icon-size: {{#var:iconSize}}; --link-icon-line-height: {{#var:lineHeight}};"><!-- start icon + text element
-->{{#if: {{#var:fileExists}} <!-- start icon if
-->| <span class="regular">[[File:{{#var:target}} ({{{type}}}).png|link={{#var:target}}|alt=]]</span><!-- end regular icon
-->| <span class="fallback">[[File:{{{1}}} ({{{type}}}).png|?]]</span><!-- end fallback icon (?)
-->}} <!-- end icon if
--><span class="display-text">[[{{#var:target}}|{{#var:display}}]]</span><!-- end display text
--></span> <!-- end icon + text element
-->}}<!-- end if notext
--></includeonly><noinclude>{{Documentation}}[[Category:Formatting templates]]</noinclude>
a8fc86aa3dc0f0085e5d1236a47e8d04e8685684
Template:Link icon/doc
10
94
116
2025-11-02T00:44:03Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
{{No direct use}}
== List of link icon templates ==
* {{tl|Character icon}}
* {{tl|Item icon}}
== Dependencies==
For this template to work properly, you need the following:
* The <code>.link-icon</code> class and any related classes, found in [[MediaWiki:Common.css]].
<noinclude>[[Category:Template documentation]]</noinclude>
654dfb540ea31a810ef53c3820862942e63b2e8a
Template:I
10
95
117
2025-11-02T00:44:03Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#REDIRECT [[Template:Link icon]]
6ebdedb4de95efaa3e6ca27590e79aca674f2364
Template:Quote
10
96
118
2025-11-02T00:44:04Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly><!--
--><div class="quote"><!-- start quote wrapper
--><div class="marks-wrapper"><!-- start marks wrapper
--><div class="block"><!-- start quote block
-->{{#if:{{{title|}}}|<div class="title">{{{title}}}</div>|}}<!--
-->{{#if:{{{text|{{{1|}}}}}}|<div class="text">{{{text|{{{1|}}}}}}</div>|}}<!--
--></div><!-- end quote block
--></div><!-- end marks wrapper
-->{{#if:{{{author|{{{2|}}}}}}|<div class="author">― {{#if:{{{authorpage|}}}| [[{{{authorpage}}}|{{{author|{{{2|}}}}}}]] | {{{author|{{{2|}}}}}} }}</div>|}}<!--
--></div><!--
-->[[Category:Pages with quotes]]</includeonly><noinclude>{{Documentation}}[[Category:Formatting templates]]</noinclude>
095258ceee92819a4e7b83c26fba3761bf9c41a9
Template:Item icon
10
97
119
2025-11-02T00:44:04Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{Link icon|{{{1|}}}|{{{2|}}}|type=Item}}</includeonly><noinclude>{{documentation}}[[Category:Formatting templates]]</noinclude>
6564279e3808e659b8034ad4b96f4f9e9e498b57
Template:Item icon/doc
10
98
120
2025-11-02T00:44:04Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
== Summary ==
<templatedata>
{
"params": {
"1": {
"aliases": [
"page"
],
"label": "Page Name",
"description": "The name for the target page.",
"example": "Page Name",
"type": "wiki-page-name",
"required": true
},
"2": {
"aliases": [
"label"
],
"label": "Link Label",
"description": "The text to the be displayed on the link icon's label.",
"example": "Alternative Page Name",
"type": "line"
}
},
"description": "Use this template to display an icon next to a page link.\n\nThis template assumes that each page has an icon uploaded at a specific location, namely \"File:Page Name (Item).png\".",
"format": "inline"
}
</templatedata>
== Examples ==
For the examples below, <code><nowiki>File:Mystic Feather (Item).png</nowiki></code> was used as the icon for a page called <code>Mystic Feather</code>.
{| class="wikitable"
! Code !! Result
|-
| <code><nowiki>{{Item icon|Mystic Feather}}</nowiki></code> || {{Item icon|Mystic Feather}}
|-
| <code><nowiki>{{Item icon|Mystic Feather|Mystic Feathers}}</nowiki></code> || {{Item icon|Mystic Feather|Mystic Feathers}}
|-
| <code><nowiki>{{Item icon|Mystic Feather|notext}}</nowiki></code> || {{Item icon|Mystic Feather|notext}}
|-
| <code><nowiki>{{Item icon|Missing Item}}</nowiki></code> (Missing Page Icon) || {{Item icon|Missing Item}}
|}
== Dependencies==
For this template to work properly, you need the following:
* The base {{tl|Link icon}} template.
* The <code>.link-icon</code> class and any related classes, found in [[MediaWiki:Common.css]].
4dfcab6f3d3c88596068607685645f29666f0141
Template:Character icon
10
99
121
2025-11-02T00:44:04Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{Link icon|{{{1|}}}|{{{2|}}}|type=Character}}</includeonly><noinclude>{{documentation}}[[Category:Formatting templates]]</noinclude>
24bad84fd5dea93cab210dfd592fda86af09eb87
Template:Character icon/doc
10
100
122
2025-11-02T00:44:05Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
== Summary ==
<templatedata>
{
"params": {
"1": {
"aliases": [
"page"
],
"label": "Page Name",
"description": "The name for the target page.",
"example": "Page Name",
"type": "wiki-page-name",
"required": true
},
"2": {
"aliases": [
"label"
],
"label": "Link Label",
"description": "The text to the be displayed on the link icon's label.",
"example": "Alternative Page Name",
"type": "line"
}
},
"description": "Use this template to display an icon next to a page link.\n\nThis template assumes that each page has an icon uploaded at a specific location, namely \"File:Page Name (Character).png\".",
"format": "inline"
}
</templatedata>
== Examples ==
For the examples below, <code><nowiki>File:Invisible Boy (Character).png</nowiki></code> was used as the icon for a page called <code>Invisible Boy</code>.
{| class="wikitable"
! Code !! Result
|-
| <code><nowiki>{{Character icon|Invisible Boy}}</nowiki></code> || {{Character icon|Invisible Boy}}
|-
| <code><nowiki>{{Character icon|Invisible Boy|The Invisible Boy}}</nowiki></code> || {{Character icon|Invisible Boy|The Invisible Boy}}
|-
| <code><nowiki>{{Character icon|Invisible Boy|notext}}</nowiki></code> || {{Character icon|Invisible Boy|notext}}
|-
| <code><nowiki>{{Character icon|Missing Boy}}</nowiki></code> (Missing Page Icon) || {{Character icon|Missing Boy}}
|}
== Dependencies==
For this template to work properly, you need the following:
* The base {{tl|Link icon}} template.
* The <code>.link-icon</code> class and any related classes, found in [[MediaWiki:Common.css]].
0999a706143c16f5ed970816e7825239cfce9547
Template:Quote/doc
10
101
123
2025-11-02T00:44:05Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
== Examples ==
{| class="wikitable"
! Code !! Result
|-
| <pre>{{Quote|text=Now is the winter of our discontent made glorious summer by this sun of York}}</pre>
| {{Quote|text=Now is the winter of our discontent made glorious summer by this sun of York}}
|-
| <pre>{{Quote
|title=Opening lines of ''Richard III''
|text=Now is the winter of our discontent made glorious summer by this sun of York}}</pre>
| {{Quote
|title=Opening lines of ''Richard III''
|text=Now is the winter of our discontent made glorious summer by this sun of York}}
|-
| <pre>{{Quote
|title=Opening lines of ''Richard III''
|author=William Shakespeare
|text=Now is the winter of our discontent made glorious summer by this sun of York}}</pre>
| {{Quote
|title=Opening lines of ''Richard III''
|author=William Shakespeare
|text=Now is the winter of our discontent made glorious summer by this sun of York}}
|-
| <pre>{{Quote
|title=Opening lines of ''Richard III''
|author=William Shakespeare
|authorpage=wikipedia:William Shakespeare
|text=Now is the winter of our discontent made glorious summer by this sun of York}}</pre>
| {{Quote
|title=Opening lines of ''Richard III''
|author=William Shakespeare
|authorpage=wikipedia:William Shakespeare
|text=Now is the winter of our discontent made glorious summer by this sun of York}}
|-
| <pre>{{Quote
|author=William Shakespeare
|authorpage=wikipedia:William Shakespeare
|text=Now is the winter of our discontent made glorious summer by this sun of York}}</pre>
| {{Quote
|author=William Shakespeare
|authorpage=wikipedia:William Shakespeare
|text=Now is the winter of our discontent made glorious summer by this sun of York}}
|}
== Dependencies ==
For this template to work properly, you need the following:
* The <code>.quote</code> and any related classes, found in [[MediaWiki:Common.css]].
<noinclude>[[Category:Template documentation]]</noinclude>
== Template data (for Visual Editor) ==
<templatedata>
{
"params": {
"title": {
"label": "Title",
"description": "If the quote has a title, put it here.",
"example": "Richard III's soliloquy",
"type": "line"
},
"text": {
"label": "Quoted Text",
"description": "The quoted text to be displayed.",
"example": "Now is the winter of our discontent made glorious summer by this sun of York",
"type": "string",
"required": true
},
"author": {
"label": "Quote's Author",
"description": "The author of the displayed quote.",
"example": "William Shakespeare",
"type": "line",
"suggested": true
},
"authorpage": {
"label": "Author's Page",
"description": "If the quote's author has a page on the Wiki, put the page name here.",
"example": "William Shakespeare (playwright)",
"type": "wiki-page-name",
"suggested": true
}
},
"description": "This template creates a styled block element for quotes.",
"paramOrder": [
"text",
"author",
"authorpage",
"title"
],
"format": "block"
}
</templatedata>
8a10e77de70ff704435282ce0f2ba792a13404a5
Template:Hatnote
10
102
124
2025-11-02T00:44:05Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly><!--
-->[[Category:Pages with hatnotes]]<!--
--><div class="hatnote {{#if:{{{icon|}}}|icon}} noexcerpt">{{#if:{{{icon|}}}|[[File:{{{icon}}}|x22px]]<nowiki> </nowiki>}}{{{1|}}}</div><!--
--></includeonly><!--
--><noinclude>{{doc}}[[Category:Hatnote templates| ]]</noinclude>
7d46b899835bfd29a8fbee088499bc7a6acb2587
Template:Hatnote/doc
10
103
125
2025-11-02T00:44:05Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
{{No direct use}}
== List of hatnote templates ==
* {{tl|Disambiguation}}
* {{tl|Distinguish}}
* {{tl|For}}
* {{tl|Main}}
== Dependencies ==
For this template to work properly, you need the following:
* The <code>.hatnote</code> class, found in [[MediaWiki:Common.css]].
* The <code>--wiki-content-border-color--secondary</code> CSS variable, defined in [[MediaWiki:Common.css]].
<noinclude>[[Category:Template documentation]]</noinclude>
464f2f866befaf4cfa47f68ab0ad4f170c13463d
Template:Disambiguation/doc
10
104
126
2025-11-02T00:44:06Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<templatedata>
{
"params": {
"1": {
"label": "Disambiguation Page",
"description": "A custom disambiguation page name.",
"example": "Disambiguation Page",
"type": "wiki-page-name"
},
"2": {
"label": "Link Label",
"description": "A label for the custom disambiguation page.",
"example": "Alternative Page Name",
"type": "line"
},
"topic": {
"label": "Custom Topic",
"description": "In case {{PAGENAME}} does not describe the topic, this can be used to display a custom topic",
"example": "a custom topic",
"default": "{{PAGENAME}}",
"type": "line"
}
},
"description": "This hatnote template is meant to be used at the top of an article to indicate the existence of a disambiguation page.",
"paramOrder": [
"1",
"2",
"topic"
],
"format": "inline"
}
</templatedata>
== Examples ==
{| class="wikitable"
! Code !! Result
|-
| <code><nowiki>{{Disambiguation}}</nowiki></code> || {{Disambiguation|topic=Example}}
|-
| <code><nowiki>{{Disambiguation|Special:Random|topic=Example}}</nowiki></code> || {{Disambiguation|Special:Random|topic=Example}}
|-
| <code><nowiki>{{Disambiguation|Special:Random|Page Label|topic=this particular topic}}</nowiki></code> || {{Disambiguation|Special:Random|Page Label|topic=this particular topic}}
|}
== Dependencies ==
For this template to work properly, you need the following:
* The {{tl|Hatnote}} base template.
* The <code>.hatnote</code> class, found in [[MediaWiki:Common.css]].
== Source ==
Roughly based on [[wikipedia:Template:About|Wikipedia's About Template]].
<noinclude>[[Category:Template documentation]]</noinclude>
5fce9c689120c57454571ff0e60a2cd447df5713
Template:Disambiguation
10
105
127
2025-11-02T00:44:06Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly><!--
-->{{#vardefine:topic|<!-- start vd
-->{{#if:{{{topic|}}} | {{{topic}}} | {{PAGENAME}} }}<!-- end if
-->}}<!-- end vd
-->{{#vardefine:disambig|<!-- start vd
-->{{#if:{{{1|}}}<!-- start custom disambig if
-->|{{{1}}}<!-- start label if -->{{#if:{{{2|}}} | {{!}}{{{2}}} }}<!-- end label if
-->|{{#var:topic}} (disambiguation)<!-- else; use regular disambig
-->}}<!-- end custom disambig if
-->}}<!-- end vd
-->{{Hatnote|<!--
-->This page is about '''{{#var:topic}}'''. For other uses, see [[{{#var:disambig}}]].<!--
-->|icon=Disambig.svg<!--
-->}}<!--
--></includeonly><!--
--><noinclude>{{doc}}[[Category:Hatnote templates]]</noinclude>
c4c62e7a1876492eb970ea182cf4ac0bcad97913
Template:Distinguish
10
106
128
2025-11-02T00:44:07Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly><!--
-->{{#vardefine:text|<!-- start vd
-->{{#if:{{{text|}}} | {{{text}}} |<!-- start top if
-->{{#if:{{{2|}}}<!-- if more than one page
-->|[[{{{1}}}]]{{#if:{{{3|}}}<!-- start concat if
-->|, [[{{{2}}}]] or [[{{{3}}}]]<!-- concat two
-->|<nowiki> </nowiki>or [[{{{2}}}]]<!-- else; concat one
-->}}<!-- end concat if
-->|[[{{{1}}}]]<!-- else; one page only
-->}}<!-- end custom disambig if
-->}}<!-- end if
-->}}<!-- end vd
-->{{Hatnote|<!--
-->Not to be confused with {{#var:text}}.<!--
-->}}<!--
--></includeonly><!--
--><noinclude>{{doc}}[[Category:Hatnote templates]]</noinclude>
67ae5406ffd29bec56cfe7ad6527bb09a9733496
Template:Distinguish/doc
10
107
129
2025-11-02T00:44:07Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<templatedata>
{
"params": {
"1": {
"label": "Alternative",
"description": "The alternative page.",
"example": "Alternative Page",
"type": "wiki-page-name",
"suggested": true
},
"2": {
"label": "Second Alternative",
"description": "A second alternative page.",
"example": "Second Alternative Page",
"type": "wiki-page-name"
},
"3": {
"label": "Third Alternative",
"description": "A third alternative page.",
"example": "Third Alternative Page",
"type": "wiki-page-name"
},
"text": {
"label": "Alternative Text",
"description": "Instead of using pages, you can provide a full alternative text. This parameter overrides other provided parameters.",
"example": "the alternative page, [[Alternative Page]]",
"type": "line"
}
},
"description": "This hatnote template is meant to be used to indicate possible alternatives to what the reader wants to find.",
"paramOrder": [
"1",
"2",
"3",
"text"
],
"format": "inline"
}
</templatedata>
== Examples ==
{| class="wikitable"
! Code !! Result
|-
| <code><nowiki>{{Distinguish|Special:Uncategorizedpages}}</nowiki></code> || {{Distinguish|Special:Uncategorizedpages}}
|-
| <code><nowiki>{{Distinguish|Special:Uncategorizedpages|Special:Uncategorizedfiles}}</nowiki></code> || {{Distinguish|Special:Uncategorizedpages|Special:Uncategorizedfiles}}
|-
| <code><nowiki>{{Distinguish|Special:Uncategorizedpages|Special:Uncategorizedfiles|Special:Uncategorizedcategories}}</nowiki></code> || {{Distinguish|Special:Uncategorizedpages|Special:Uncategorizedfiles|Special:Uncategorizedcategories}}
|-
| <code><nowiki>{{Distinguish|Special:Uncategorizedpages{{!}}Page 1}}</nowiki></code> (Custom link label) || {{Distinguish|Special:Uncategorizedpages{{!}}Page 1}}
|-
| <code><nowiki>{{Distinguish|text = Page 1, another name for [[Special:Uncategorizedpages]]}}</nowiki></code> || {{Distinguish|text = Page 1, another name for [[Special:Uncategorizedpages]]}}
|}
== Dependencies ==
For this template to work properly, you need the following:
* The {{tl|Hatnote}} base template.
* The <code>.hatnote</code> class, found in [[MediaWiki:Common.css]].
== Source ==
Roughly based on [[wikipedia:Template:Distinguish|Wikipedia's Distinguish Template]].
<noinclude>[[Category:Template documentation]]</noinclude>
2a06ed576ae6479add20834628f9378c657cb4fb
Template:For
10
108
130
2025-11-02T00:44:08Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly><!--
-->{{#vardefine:text|<!-- start vd
-->{{#if:{{{3|}}}<!-- if more than one page
-->|[[{{{2}}}]]{{#if:{{{4|}}}<!-- start concat if
-->|, [[{{{3}}}]] and [[{{{4}}}]]<!-- concat two
-->|<nowiki> </nowiki>and [[{{{3}}}]]<!-- else; concat one
-->}}<!-- end concat if
-->|[[{{{2}}}]]<!-- else; one page only
-->}}<!-- end if
-->}}<!-- end vd
-->{{Hatnote|<!--
-->For {{{1}}}, see {{#var:text}}.<!--
-->}}<!--
--></includeonly><!--
--><noinclude>{{doc}}[[Category:Hatnote templates]]</noinclude>
1899e48855153617f7c0bf3087b781bc80f0395c
Template:For/doc
10
109
131
2025-11-02T00:44:08Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<templatedata>
{
"params": {
"1": {
"label": "Topic",
"description": "The topic the following pages are about.",
"example": "more information",
"type": "line",
"required": true
},
"2": {
"label": "Related Page",
"description": "A related page.",
"example": "Related Page",
"type": "wiki-page-name",
"required": true
},
"3": {
"label": "Second Page",
"description": "A second related page.",
"example": "Second Related Page",
"type": "wiki-page-name"
},
"4": {
"label": "Third Page",
"description": "A third related page.",
"example": "Third Related Page",
"type": "wiki-page-name"
}
},
"description": "This hatnote template is meant to be used to show pages related to a topic the reader might want to visit.",
"paramOrder": [
"1",
"2",
"3",
"4"
],
"format": "inline"
}
</templatedata>
== Examples ==
{| class="wikitable"
! Code !! Result
|-
| <code><nowiki>{{For|more information|Special:WantedPages}}</nowiki></code> || {{For|more information|Special:WantedPages}}
|-
| <code><nowiki>{{For|more information|Special:WantedPages|Special:UncategorizedPages}}</nowiki></code> || {{For|more information|Special:WantedPages|Special:UncategorizedPages}}
|-
| <code><nowiki>{{For|more information|Special:WantedPages|Special:UncategorizedPages|Special:UncategorizedCategories}}</nowiki></code> || {{For|more information|Special:WantedPages|Special:UncategorizedPages|Special:UncategorizedCategories}}
|-
| <code><nowiki>{{For|more information|Special:WantedPages{{!}}Page 1}}</nowiki></code> (Custom link label) || {{For|more information|Special:WantedPages{{!}}Page 1}}
|}
== Dependencies ==
For this template to work properly, you need the following:
* The {{tl|Hatnote}} base template.
* The <code>.hatnote</code> class, found in [[MediaWiki:Common.css]].
== Source ==
Roughly based on [[wikipedia:Template:For|Wikipedia's For Template]].
<noinclude>[[Category:Template documentation]]</noinclude>
b2a30a9bf8acff259d5e86654a2de69c2d5e4fff
Template:Main
10
110
132
2025-11-02T00:44:09Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly><!--
-->{{#vardefine:text|<!-- start vd
-->{{#if:{{{2|}}}<!-- if more than one page
-->|[[{{{1}}}]]{{#if:{{{3|}}}<!-- start concat if
-->|, [[{{{2}}}]] and [[{{{3}}}]]<!-- concat two
-->|<nowiki> </nowiki>and [[{{{2}}}]]<!-- else; concat one
-->}}<!-- end concat if
-->|[[{{{1}}}]]<!-- else; one page only
-->}}<!-- end if
-->}}<!-- end vd
-->{{Hatnote|<!--
-->{{#if:{{{2|}}}|Main articles|Main article}}: {{#var:text}}<!--
-->}}<!--
--></includeonly><!--
--><noinclude>{{doc}}[[Category:Hatnote templates]]</noinclude>
e02ac04db1bbce6b71a9aa8a5064182f662d8470
Template:Main/doc
10
111
133
2025-11-02T00:44:09Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<templatedata>
{
"params": {
"1": {
"label": "Article",
"description": "A main article.",
"example": "Article",
"type": "wiki-page-name",
"required": true
},
"2": {
"label": "Second Article",
"description": "A second main article.",
"example": "Second Article",
"type": "wiki-page-name"
},
"3": {
"label": "Third Article",
"description": "A third main article.",
"example": "Third Article",
"type": "wiki-page-name"
}
},
"description": "This hatnote template is meant to be in sections of an article mentioning information about another existing main article.",
"paramOrder": [
"1",
"2",
"3"
],
"format": "inline"
}
</templatedata>
== Examples ==
{| class="wikitable"
! Code !! Result
|-
| <code><nowiki>{{Main|Special:WantedPages}}</nowiki></code> || {{Main|Special:WantedPages}}
|-
| <code><nowiki>{{Main|Special:WantedPages#Section Title}}</nowiki></code> || {{Main|Special:WantedPages#Section Title}}
|-
| <code><nowiki>{{Main|Special:WantedPages|Special:UncategorizedPages}}</nowiki></code> || {{Main|Special:WantedPages|Special:UncategorizedPages}}
|-
| <code><nowiki>{{Main|Special:WantedPages|Special:UncategorizedPages|Special:UncategorizedCategories}}</nowiki></code> || {{Main|Special:WantedPages|Special:UncategorizedPages|Special:UncategorizedCategories}}
|-
| <code><nowiki>{{Main|Special:WantedPages{{!}}Page 1}}</nowiki></code> (Custom link label) || {{Main|Special:WantedPages{{!}}Page 1}}
|}
== Dependencies ==
This template requires the {{tl|Hatnote}} metatemplate.
== Source ==
Roughly based on [[wikipedia:Template:For|Wikipedia's For Template]].
<noinclude>[[Category:Template documentation]]</noinclude>
dd762adeece0f944821cb81ee14a8bd9cb539b22
Template:Ambox/doc
10
112
134
2025-11-02T00:44:09Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
{{#ifeq:{{ROOTPAGENAME}}|Ambox|"Ambox" is an abbreviation for '''A'''rticle '''m'''essage '''box'''. You can use amboxes in articles to indicate something important about the current page, often in the header.|
This '''message template''' is an [[Template:Ambox|article message box]], or '''ambox'''. The documentation below discusses how to use each ambox provided by the wiki.
}}
== Premade amboxes ==
=== Problem notice amboxes ===
These amboxes are used temporarily to notify other editors and visitors about a problem with an article. These amboxes support the following parameters:
* <code>|tiny=</code>: If set to <code>yes</code>, the box will have less padding and the icon will be much smaller than default.
* <code>|class=</code>: Any additional CSS classes to add to the ambox container element.
* <code>|date=</code>: The date the ambox was added to the page.
* <code>|nocat=</code>: If set to <code>yes</code>, no category will be added to the page. Use this only when creating documentation.
'''Note:''' Premade amboxes need the base {{tl|Ambox}} template to work.
{| class="wikitable"
! Code !! Result
|-
| {{tl|Cleanup}} || {{Cleanup|nocat=yes}}
|-
| {{tl|Delete}} || {{Delete|nocat=yes}}
|-
| {{tl|Merge|Example}} || {{Merge|Template:Ambox{{!}}Example|nocat=yes}}
|-
| {{tl|Move|Example}} || {{Move|Template:Ambox{{!}}Example|nocat=yes}}
|-
| {{tl|Split|Example}}<br/>{{tl|Split|Example 1|Example 2|Example 3}} || {{Split|Template:Ambox{{!}}Example|nocat=yes}}
{{Split|Template:Ambox{{!}}Example 1|Template:Ambox{{!}}Example 2|Template:Ambox{{!}}Example 3|nocat=yes}}
|-
| {{tl|Stub}} || {{Stub|nocat=yes}}
|-
|}
=== Informational amboxes ===
These amboxes are intended as permanent fixtures to a page, to notify visitors about some piece of information relevant to the page. These amboxes support the following parameters in addition to any listed:
* <code>|tiny=</code>: If set to <code>yes</code>, the box will have less padding and the icon will be much smaller than default.
* <code>|class=</code>: Any additional CSS classes to add to the ambox container element.
{| class="wikitable"
! Code !! Additional parameters !! Result
|-
| {{tl|Spoiler warning}} || || {{Spoiler warning|nocat=yes}}
|-
| {{tl|No direct use}} || || {{No direct use|nocat=yes}}
|-
| {{tl|Uses Lua}} || <code><nowiki>|1=</nowiki></code>, a comma-separated list of modules used || {{Uses Lua|nocat=yes}}
|}
=== Optional parameters ===
You can use optional parameters to further customize a premade ambox. The example below is using <code>tiny=yes</code> and <code>date=01/01/2021</code>.
{{Cleanup|tiny=yes|date=01/01/2021|nocat=yes}}
== Creating a custom ambox ==
You can create additional ambox templates as needed using the following parameters:
<pre>
{{Ambox
| color = The left border color.
| icon = The icon image to be displayed.
| title = The optional title.
| message = The explanation text displayed.
| tiny = If you want the tiny version of the ambox, fill the parameter with "yes".
| date = An optional date of creation for the message.
| class = An optional CSS class for the ambox.
}}
</pre>
== Dependencies ==
For this template to work properly, you need the following:
* <code>.ambox</code> and any related classes, found in [[MediaWiki:Common.css]].
<includeonly>[[Category:Notice templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
d4fda481c06177d59ff39364bf17e15d7f1adfbc
Template:Cleanup
10
113
135
2025-11-02T00:44:10Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{Ambox
| color = gold
| icon = Cleanup.svg
| message = This page does not meet '''{{SITENAME}}'''<nowiki/>'s page quality standards. You can [{{fullurl:{{FULLPAGENAME}}|action=edit}} edit it] to help fix grammar, formatting, or code issues.
| tiny = {{{tiny|}}}
| class = {{{class|}}}
| date = {{{date|}}}
}}<!--
-->{{#ifeq: {{lc:{{{nocat|}}}}} | yes ||[[Category:Pages in need of improvement]]}}</includeonly><!--
--><noinclude>{{Cleanup|nocat=yes}}
{{doc|Template:Ambox/doc}}</noinclude>
9c9fb940d733227f74a7ce12720d22f569bd4d3e
Template:Delete
10
114
136
2025-11-02T00:44:10Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{Ambox
| color = grey
| icon = Delete.svg
| title = Candidate for Deletion
| message = This page lacks relevance for '''{{SITENAME}}''' and is a candidate for '''deletion'''.
| tiny = {{{tiny|}}}
| class = {{{class|}}}
| date = {{{date|}}}
}}<!--
-->{{#ifeq: {{lc:{{{nocat|}}}}} | yes ||[[Category:Candidates for deletion]]}}</includeonly><!--
--><noinclude>{{Delete|nocat=yes}}
{{doc|Template:Ambox/doc}}</noinclude>
6c827de94518d7f5f1635b13425be0d0fb4078da
Template:No direct use
10
115
137
2025-11-02T00:44:10Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{ambox|icon=Warning-red.svg|title=Don't call this template directly from any content page!
|message=This template is intended to be used inside of another template. Then that template in turn may be used on content pages.
|color=red
|tiny={{{tiny|}}}
|class={{{class|}}}
}}</includeonly><noinclude>{{doc|Template:Ambox/doc}}
[[Category:Notice templates]]</noinclude>
22c9c1b0d6c05220eb6d7ad84073f7d878b60b68
Template:UsesLua
10
116
138
2025-11-02T00:44:11Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#REDIRECT [[Template:Uses Lua]]
9675a92267565619bc6418ec4e88163985302408
Template:Cleanup/doc
10
117
139
2025-11-02T00:44:11Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#REDIRECT [[Template:Ambox/doc]]
286a3914c1d2770ff27394ac3d3f36a685542cb8
Template:Delete/doc
10
118
140
2025-11-02T00:44:11Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#REDIRECT [[Template:Ambox/doc]]
286a3914c1d2770ff27394ac3d3f36a685542cb8
Template:Spoiler warning
10
119
141
2025-11-02T00:44:12Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
{{Ambox
| color = red
| icon = Warning-red.svg
| title = Spoiler Warning
| message = This page contains '''spoilers'''. View at your own discretion.
| tiny = {{{tiny|}}}
| class = {{{class|}}}
}}<noinclude>{{doc|Template:Ambox/doc}}</noinclude>
d46344bae30adce89ead1cf12e8c3ff904e95203
Template:Spoiler warning/doc
10
120
142
2025-11-02T00:44:13Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#REDIRECT [[Template:Ambox/doc]]
286a3914c1d2770ff27394ac3d3f36a685542cb8
Template:Uses Lua/doc
10
121
143
2025-11-02T00:44:13Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#REDIRECT [[Template:Ambox/doc]]
286a3914c1d2770ff27394ac3d3f36a685542cb8
Template:Stub
10
122
144
2025-11-02T00:44:14Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{Ambox
| color = gold
| icon = Stub.svg
| message = This page is a [[support:Stub|stub]]. You can help '''{{SITENAME}}''' by [{{fullurl:{{FULLPAGENAME}}|action=edit}} expanding it].
| tiny = {{{tiny|}}}
| class = {{{class|}}}
| date = {{{date|}}}
}}<!--
-->{{#ifeq: {{lc:{{{nocat|}}}}} | yes ||[[Category:Stubs]]}}</includeonly><!--
--><noinclude>{{Stub|nocat=yes}}
{{doc|Template:Ambox/doc}}</noinclude>
1effeb7d6eb04a0b11c76b8bfa871703461c9344
Template:Stub/doc
10
123
145
2025-11-02T00:44:14Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#redirect [[Template:Ambox/doc]]
68bfb03f8f28c95443c7b1997f252c236bf87256
Template:NoDirectUse
10
124
146
2025-11-02T00:44:14Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#REDIRECT [[Template:No direct use]]
8448af1f61f0d64a84806b006c70670d9296acde
Template:No direct use/doc
10
125
147
2025-11-02T00:44:14Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#redirect [[Template:Ambox/doc]]
68bfb03f8f28c95443c7b1997f252c236bf87256
Template:Merge
10
126
148
2025-11-02T00:44:15Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{Ambox
| color = purple
| icon = Merge.svg
| message = It has been proposed that this page be [[support:Merge|merged]] with [[{{{1}}}]].
| tiny = {{{tiny|}}}
| class = {{{class|}}}
| date = {{{date|}}}
}}<!--
-->{{#ifeq: {{lc:{{{nocat|}}}}} | yes ||[[Category:Candidates for merging]]}}</includeonly><!--
--><noinclude>{{Merge|Template:Merge|nocat=yes}}
{{doc|Template:Ambox/doc}}</noinclude>
9975c110e793cc1943eac9ea8e62257d704ab853
Template:Merge/doc
10
127
149
2025-11-02T00:44:15Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#REDIRECT [[Template:Ambox/doc]]
286a3914c1d2770ff27394ac3d3f36a685542cb8
Template:Move
10
128
150
2025-11-02T00:44:16Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{Ambox
| color = darkorange
| icon = Move.svg
| message = It has been proposed that this page be moved to [[{{{1}}}]].
| tiny = {{{tiny|}}}
| class = {{{class|}}}
| date = {{{date|}}}
}}<!--
-->{{#ifeq: {{lc:{{{nocat|}}}}} | yes ||[[Category:Candidates for moving]]}}</includeonly><!--
--><noinclude>{{Move|Template:Ambox{{!}}Example|nocat=yes}}
{{doc|Template:Ambox/doc}}</noinclude>
dc4fd9090208e453457d6d2df193b9a7ee3b562d
Template:Move/doc
10
129
151
2025-11-02T00:44:16Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#REDIRECT [[Template:Ambox/doc]]
286a3914c1d2770ff27394ac3d3f36a685542cb8
Template:Split
10
130
152
2025-11-02T00:44:16Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly><!--
-->{{#vardefine:pages|<!-- start vd
-->{{#if:{{{2|}}}<!-- if more than one page
-->|new pages titled [[{{{1}}}]]{{#if:{{{3|}}}<!-- start concat if
-->|, [[{{{2}}}]] and [[{{{3}}}]]<!-- concat two
-->|<nowiki> </nowiki>and [[{{{2}}}]]<!-- else; concat one
-->}}<!-- end concat if
-->|a new page titled [[{{{1}}}]]<!-- else; one page only
-->}}<!-- end if
-->}}<!-- end vd
-->{{Ambox
| color = purple
| icon = Split.svg
| message = It has been proposed that this page be split into {{#var:pages}}.
| tiny = {{{tiny|}}}
| class = {{{class|}}}
| date = {{{date|}}}
}}<!--
-->{{#ifeq: {{lc:{{{nocat|}}}}} | yes ||[[Category:Candidates for splitting]]}}</includeonly><!--
--><noinclude>{{Split|Template:Ambox{{!}}Example|nocat=yes}}
{{Split|Template:Ambox{{!}}Example 1|Template:Ambox{{!}}Example 2|Template:Ambox{{!}}Example 3|nocat=yes}}
{{doc|Template:Ambox/doc}}</noinclude>
73f5044c8b972e18c3b7880f94b0644e4a0e6ac7
Template:Split/doc
10
131
153
2025-11-02T00:44:17Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#REDIRECT [[Template:Ambox/doc]]
286a3914c1d2770ff27394ac3d3f36a685542cb8
Template:Anchor
10
132
154
2025-11-02T00:44:17Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly><!--
--><span id="{{{1}}}"></span><!--
--></includeonly><!--
--><noinclude>{{doc}}
[[Category:Navigation templates]]</noinclude>
08ccba46722925866447768d344bf540b0b55e79
Template:Anchor/doc
10
133
155
2025-11-02T00:44:18Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
== Summary ==
This template can be used to insert an invisible anchor (reference points) into a page that can later be used by internal wiki links.
== Usage ==
To create a custom anchor, use <code><nowiki>{{Anchor|Anchor Name}}</nowiki></code> anywhere in the page.
For example, if you create the anchor <code><nowiki>{{Anchor|Example Anchor}}</nowiki></code> in the page <code><nowiki>[[Example]]</nowiki></code>, you can access it through the internal link <code><nowiki>[[Example#Example Anchor]]</nowiki></code>.
Remember that you can create a [[support:Redirect|redirect]] to this template so that you can call it more easily, such as with <code><nowiki>{{a|Anchor Name}}</nowiki></code>.
<noinclude>[[Category:Template documentation]]</noinclude>
4b0ddb50416a354db262e62617d9b45056f4d526
Template:Key/doc/Xbox
10
134
156
2025-11-02T00:44:18Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
Images source: [[dev:Category:Xbox input images]]
=== Series & One ===
<code><nowiki>{{Key|Xbox|A}}</nowiki></code>
{{Key|Xbox|A}}
<code><nowiki>{{Key|Xbox|B}}</nowiki></code>
{{Key|Xbox|B}}
<code><nowiki>{{Key|Xbox|X}}</nowiki></code>
{{Key|Xbox|X}}
<code><nowiki>{{Key|Xbox|Y}}</nowiki></code>
{{Key|Xbox|y}}
<code><nowiki>{{Key|Xbox|Left Thumbstick}}</nowiki></code>
{{Key|Xbox|Left Thumbstick}}
<code><nowiki>{{Key|Xbox|Right Thumbstick}}</nowiki></code>
{{Key|Xbox|Right Thumbstick}}
<code><nowiki>{{Key|Xbox|Left Thumbstick Press}}</nowiki></code>
{{Key|Xbox|Left Thumbstick Press}}
<code><nowiki>{{Key|Xbox|Right Thumbstick Press}}</nowiki></code>
{{Key|Xbox|Right Thumbstick Press}}
<code><nowiki>{{Key|Xbox|LB}}</nowiki></code>
{{Key|Xbox|LB}}
<code><nowiki>{{Key|Xbox|RB}}</nowiki></code>
{{Key|Xbox|RB}}
<code><nowiki>{{Key|Xbox|View}}</nowiki></code>
{{Key|Xbox|View}}
<code><nowiki>{{Key|Xbox|Menu}}</nowiki></code>
{{Key|Xbox|Menu}}
<code><nowiki>{{Key|Xbox|Button}}</nowiki></code>
{{Key|Xbox|Button}}
=== Xbox Series ===
<code><nowiki>{{Key|Xbox|D-pad}}</nowiki></code>
{{Key|Xbox|D-pad}}
<code><nowiki>{{Key|Xbox|D-pad Left}}</nowiki></code>
{{Key|Xbox|D-pad Left}}
<code><nowiki>{{Key|Xbox|D-pad Right}}</nowiki></code>
{{Key|Xbox|D-pad Right}}
<code><nowiki>{{Key|Xbox|D-pad Up}}</nowiki></code>
{{Key|Xbox|D-pad Up}}
<code><nowiki>{{Key|Xbox|D-pad Down}}</nowiki></code>
{{Key|Xbox|D-pad Down}}
<code><nowiki>{{Key|Xbox|LT}}</nowiki></code>
{{Key|Xbox|LT}}
<code><nowiki>{{Key|Xbox|RT}}</nowiki></code>
{{Key|Xbox|RT}}
<code><nowiki>{{Key|Xbox|Share}}</nowiki></code>
{{Key|Xbox|Share}}
==== Diagram ====
<code><nowiki>{{Key|Xbox|Series Controller Diagram}}</nowiki></code>
{{Key|Xbox|Series Controller Diagram}}
=== Xbox One ===
<code><nowiki>{{Key|Xbox|One D-pad}}</nowiki></code>
{{Key|Xbox|D-pad}}
<code><nowiki>{{Key|Xbox|One D-pad Left}}</nowiki></code>
{{Key|Xbox|D-pad Left}}
<code><nowiki>{{Key|Xbox|One D-pad Right}}</nowiki></code>
{{Key|Xbox|D-pad Right}}
<code><nowiki>{{Key|Xbox|One D-pad Up}}</nowiki></code>
{{Key|Xbox|D-pad Up}}
<code><nowiki>{{Key|Xbox|One D-pad Down}}</nowiki></code>
{{Key|Xbox|D-pad Down}}
<code><nowiki>{{Key|Xbox|One Left Trigger}}</nowiki></code>
{{Key|Xbox|One Left Trigger}}
<code><nowiki>{{Key|Xbox|One Right Trigger}}</nowiki></code>
{{Key|Xbox|One Right Trigger}}
==== Diagram ====
<code><nowiki>{{Key|Xbox|One Controller Diagram}}</nowiki></code>
{{Key|Xbox|One Controller Diagram}}
__NOTOC__
<noinclude>[[Category:Key template documentation]]</noinclude>
adce81e2e9eafcf930052a8993d3e5625665202e
Template:Key/doc/DualSense
10
135
157
2025-11-02T00:44:19Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
Images source: [[dev:Category:DualSense input images]]
=== Buttons ===
<code><nowiki>{{Key|PS|Directional}}</nowiki></code>
{{Key|PS|Directional}}
<code><nowiki>{{Key|PS|Directional Left}}</nowiki></code>
{{Key|PS|Directional Left}}
<code><nowiki>{{Key|PS|Directional Right}}</nowiki></code>
{{Key|PS|Directional Right}}
<code><nowiki>{{Key|PS|Directional Up}}</nowiki></code>
{{Key|PS|Directional Up}}
<code><nowiki>{{Key|PS|Directional Down}}</nowiki></code>
{{Key|PS|Directional Down}}
<code><nowiki>{{Key|PS|Left Stick}}</nowiki></code>
{{Key|PS|Left Stick}}
<code><nowiki>{{Key|PS|Right Stick}}</nowiki></code>
{{Key|PS|Right Stick}}
<code><nowiki>{{Key|PS|Touch Pad}}</nowiki></code>
{{Key|PS|Touch Pad}}
<code><nowiki>{{Key|PS|Circle}}</nowiki></code>
{{Key|PS|Circle}}
<code><nowiki>{{Key|PS|Cross}}</nowiki></code>
{{Key|PS|Cross}}
<code><nowiki>{{Key|PS|Square}}</nowiki></code>
{{Key|PS|Square}}
<code><nowiki>{{Key|PS|Triangle}}</nowiki></code>
{{Key|PS|Triangle}}
<code><nowiki>{{Key|PS|Create}}</nowiki></code>
{{Key|PS|Create}}
<code><nowiki>{{Key|PS|Options}}</nowiki></code>
{{Key|PS|Options}}
<code><nowiki>{{Key|PS|L1}}</nowiki></code>
{{Key|PS|L1}}
<code><nowiki>{{Key|PS|R1}}</nowiki></code>
{{Key|PS|R1}}
<code><nowiki>{{Key|PS|L2}}</nowiki></code>
{{Key|PS|L2}}
<code><nowiki>{{Key|PS|R2}}</nowiki></code>
{{Key|PS|R2}}
<code><nowiki>{{Key|PS|L3}}</nowiki></code>
{{Key|PS|L3}}
<code><nowiki>{{Key|PS|R3}}</nowiki></code>
{{Key|PS|R3}}
<code><nowiki>{{Key|PS|Mute}}</nowiki></code>
{{Key|PS|Mute}}
<code><nowiki>{{Key|PS|PS}}</nowiki></code>
{{Key|PS|PS}}
=== Diagram ===
<code><nowiki>{{Key|PS|Controller Diagram}}</nowiki></code>
{{Key|PS|Controller Diagram}}
<noinclude>[[Category:Key template documentation]]</noinclude>
84fa5123f9494d3572fef65e1aa63dd95ef476be
Template:Gad
10
136
158
2025-11-02T00:44:19Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<code>Gadget-[[MediaWiki:Gadget-{{{1}}}|{{{1}}}]]</code><noinclude>[[Category:Formatting templates]]</noinclude>
dd027468a6022472506b1fc2973d6299ec01e854
Template:From Wikipedia
10
137
159
2025-11-02T00:44:20Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{Ambox
| color = darkblue
| icon = Wikipedia.svg
| title= This code is adapted from [[wikipedia:Main Page|Wikipedia]].
| message = For the original code, see the following pages: {{#arraymap:{{{1|}}}|,|%s|[[wikipedia:%s|%s]]}}
| tiny = {{{tiny|}}}
| class = {{{class|}}}
}}</includeonly><noinclude>{{doc}}</noinclude>
0bb256ef5acc38fb0cfbdacc22e75aab89bd6e2c
Template:!-!
10
138
160
2025-11-02T00:44:20Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
|-|<noinclude>{{documentation}}</noinclude>
c634369c1e88b95ebe6a6d827cb32dc1e9c61fec
Template:!-!/doc
10
139
161
2025-11-02T00:44:20Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#redirect [[Template:((/doc]]
509bb731d447456a18489848c8a1ce38feddabcc
Template:Color
10
140
162
2025-11-02T00:44:21Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly><span class="color">{{{1}}} <span class="color__splotch" style="background-color: {{{1}}};" title="{{{1}}}"></span></span>[[Category:Pages with colors]]</includeonly><noinclude>
{{doc}}
[[Category:Formatting templates]]
</noinclude>
8d576236ad82770d3c04720d4ac105edcb835874
Template:Color/doc
10
141
163
2025-11-02T00:44:21Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
This template creates a small color splotch with a given background color next to a plaintext color code. This is useful for previewing colors.
==Usage==
{{tlx|color|<color>}}
Where <code><color></code> is any valid [https://developer.mozilla.org/en-US/docs/Web/CSS/color_value CSS color].
==Examples==
<pre>
My favorite color is {{color|darkgreen}}
I think the current {{color|#6d8afb}} of links should be changed to a {{color|#6df4fb}}
RGB is cool too, you can do {{color|rgb(128,255,128)}}, or even transparency with {{color|rgba(128,255,128,0.5)}}.
</pre>
Produces:
My favorite color is {{color|darkgreen}}
I think the current {{color|#6d8afb}} of links should be changed to a {{color|#6df4fb}}
RGB is cool too, you can do {{color|rgb(128,255,128)}}, or even transparency with {{color|rgba(128,255,128,0.5)}}.
<noinclude>[[Category:Template documentation]]</noinclude>
cb66b177cf785e1b3f60e28e36852b253e4b3d82
Template:Example character infobox
10
142
164
2025-11-02T00:44:21Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{#invoke:Infobox|main
<!-- See https://support.wiki.gg/wiki/DRUID_infoboxes for extra documentation -->
<!-- the "kind" categorizes this type of infobox. For example, you might want to write `Character`, `Level`, or `Item`. -->
<!-- This `kind` value should be unique to this template, and no other infobox template should have the same value -->
|kind=example-1
<!-- You can almost certainly leave the separator alone, unless one of your *section names* has a comma in it -->
|sep=,
<!-- feel free to edit the 300px but mostly try to avoid changing this next line unless you are adding tabs -->
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
<!-- every infobox needs a |sections= parameter, which lists the groups of sections, in order top to bottom -->
|sections=General Info, Stats
<!-- for each section, specify the list of fields that you want to show up in that section, top to bottom -->
<!-- empty fields (not specified on the content page) will not show up -->
|General Info=Region,Element
|Stats=Attack, HP, Armor, Attack Speed
<!-- this field formats the `Attack Speed` parameter when it's specified by the content page, adding a % sign to the end of it. -->
<!-- this is an optional operation to do, only do it if you need to provide some extra formatting -->
|Attack Speed={{#if:{{{Attack Speed|}}}|{{{Attack Speed}}}%}}
}}<!--
Here is the above code without comments for easier copy-pasting:
{{#invoke:Infobox|main
|kind=example-1
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Stats
|General Info=Region,Element
|Stats=Attack, HP, Armor, Attack Speed
|Attack Speed={{#if:{{{Attack Speed|}}}|{{{Attack Speed}}}%}}
}}
--></includeonly><noinclude>
{{documentation}}
[[Category:Infobox templates]]</noinclude>
f49d0f82d5a212306ff66b8fee112ecf88123576
Template:Example character infobox/doc
10
143
165
2025-11-02T00:44:22Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<noinclude>Are you trying to edit [[Template:Example character infobox]]? If so, you may be in the wrong place - this is the '''documentation page''', not the template itself. To edit the template, please go here: {{fullurl:Template:Example character infobox|action=edit}}
</noinclude>This is an example character infobox using the [[support:DRUID infoboxes|DRUID infoboxes]] framework. You can edit it, rename it, or delete it as desired.
== Modify this template ==
To see how DRUID works, please '''edit this page'''! It has several comments explaining the different parts of how to make an infobox.
== Copyable code for use on other content pages ==
If you want to create pages using this infobox, you can use the snippet below. Please understand, this code is for CONTENT PAGES ONLY!! It does not have anything to do with changing what the template supports.
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{Example character infobox
|title=
|image=
|Region=
|Element=
|Attack=
|HP=
|Armor=
|Attack Speed=
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
cc625bd426cde7dbdfa16b8330ff21cd1ef2e942
Template:License/indie.io
10
144
166
2025-11-02T00:44:22Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{License/template
| source = {{{source|}}}
| type = developer
| darkIcon = yes
| icon = [[File:IN COPYRIGHT.svg|50px|link=https://rightsstatements.org/page/InC/1.0/?language=en|IN COPYRIGHT]]
| text = This file is owned by [https://indie.io indie.io] and/or its licensors, and is licensed under the [https://indie.io indie.io] [https://www.indie.io/terms-of-service Terms of Use].<br/>
All trademarks and registered trademarks present in the file are proprietary to [https://indie.io indie.io] and/or its licensors.
}}</includeonly><noinclude>
This template currently looks like: {{License/indie.io}}
See {{tl|License}} for full license documentation
[[Category:License templates]]</noinclude>
49823bdf8d378ff755fa7b6493afde40f6a4e19a
167
166
2025-11-02T00:44:22Z
ARTIFICER
564804
Protected "[[Template:License/indie.io]]" ([Edit=Allow only wiki.gg staff] (indefinite))
wikitext
text/x-wiki
<includeonly>{{License/template
| source = {{{source|}}}
| type = developer
| darkIcon = yes
| icon = [[File:IN COPYRIGHT.svg|50px|link=https://rightsstatements.org/page/InC/1.0/?language=en|IN COPYRIGHT]]
| text = This file is owned by [https://indie.io indie.io] and/or its licensors, and is licensed under the [https://indie.io indie.io] [https://www.indie.io/terms-of-service Terms of Use].<br/>
All trademarks and registered trademarks present in the file are proprietary to [https://indie.io indie.io] and/or its licensors.
}}</includeonly><noinclude>
This template currently looks like: {{License/indie.io}}
See {{tl|License}} for full license documentation
[[Category:License templates]]</noinclude>
49823bdf8d378ff755fa7b6493afde40f6a4e19a
Template:-
10
145
168
2025-11-02T00:44:23Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#REDIRECT [[Template:Clear]]
1a2aa4a9ba7478e54a2b21cbce68887ea297ea86
Template:Clear/doc
10
146
169
2025-11-02T00:44:23Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
This template allows you to [https://developer.mozilla.org/en-US/docs/Web/CSS/clear clear] the left side, the right side, or both by adding <code><div style="clear:left/right/both;"></div></code>
==Usage==
{{tlx|Clear}}: Makes content wait until existing content is completed in all columns. Often used to stop text from flowing next to unrelated images. An optional <code>class</code> parameter can additionally be given for custom functionality.
To clear the left, simply put {{tlx|Clear|left}}. To clear the right, put {{tlx|Clear|right}}. To clear both sides, put {{tlx|Clear}}.
This template can also be called with {{tlx|-}} for short.
<templatedata>
{
"params": {
"1": {
"label": "Direction",
"description": "Which direction to clear",
"type": "string",
"default": "both",
"suggestedvalues": [
"left",
"right",
"both"
]
},
"class": {
"label": "Class",
"description": "A class to give to the clear",
"type": "string"
}
},
"description": "Clears the left, right, or both.",
"format": "inline"
}
</templatedata>
<noinclude>
[[Category:Template documentation]]
</noinclude>
30e700cb1ba6902a86860319bd230680193d3b04
Template:Discord
10
147
170
2025-11-02T00:44:24Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{#if:{{{1|{{{id|}}}}}}|<!--
-->{{#ifeq: {{lc:{{{full|}}}<!-- -->}} | yes<!--
display the full widget:
-->|<div class="DiscordIntegrator" style="width: {{#or:{{{width|}}}|100%}}; height: {{#or:{{{height|}}}|300px}}"
data-id="{{{1|{{{id}}}}}}"
data-logged-in="{{{loggedIn}}}"
data-theme="{{{theme|}}}"
data-width="100%"
data-height="100%"><!--
-->If you see this, your JavaScript might be disabled or DiscordIntegrator plugin isn't working. If the latter, please contact a wiki administrator.</div><!--
display only the small widget:
-->|<div id="discord-compact-widget" data-id="{{{1|{{{id}}}}}}"></div><!--
-->}}<!--
case: id is not supplied
-->|<strong class="error">DiscordIntegrator error: ID of the server isn't supplied.</strong> For instructions on how to find a Discord server ID, see [https://support.discord.com/hc/articles/206346498 this Discord Help Center article]<!--
-->}}</includeonly><!--
-->[[Category:Pages with Discord embeds]]<noinclude>{{Documentation}}
[[Category:Templates]]</noinclude>
7d39c3a9d1b4eb8e95becaf418c16ec30cb9c077
Template:Discord/doc
10
148
171
2025-11-02T00:44:24Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
This template allows you to either use [[support:DiscordCompact|DiscordCompact]] or [[support:DiscordWidget|DiscordWidget]] to display information about a certain Discord server.
== Usage ==
In order to be able to show a Discord server widget on your wiki, first go to your Discord server and do the following:
* Open the <code>Server Settings</code>, then go to the <code>Engagement</code> section.
* Scroll down to <code>Server Widget</code>.
* Enable the widget.
* Copy the <code>Server ID</code>.
Then, do the following depending on the type of widget you want to use (compact or full).
=== Compact widget (default) ===
{{main|support:DiscordCompact{{!}}DiscordCompact}}
The compact widget is the default one.
To use it, simply add the template with the server ID either as the '''first''' parameter or as the <code>id</code> parameter:
* <code><nowiki>{{Discord|serverID}}</nowiki></code>
* <code><nowiki>{{Discord|id=serverID}}</nowiki></code>
=== Full widget ===
{{main|support:DiscordWidget{{!}}DiscordWidget}}
To use the full version of the Discord widget, you have to specify <code>full=yes</code> as one of the template parameters, with the ID either as the '''first''' parameter or as the <code>id</code> parameter:
* <code><nowiki>{{Discord|serverID|full=yes}}</nowiki></code>
* <code><nowiki>{{Discord|full=yes|id=serverID}}</nowiki></code>
You can further customize the widget with the <code>width</code>, <code>height</code> and other parameters. See the Examples section and the full documentation for DiscordWidget on the [[support:DiscordWidget|Support Wiki]].
== Examples ==
{| class="wikitable"
! Code !! Result
|-
| <code><nowiki>{{Discord|951501892553424917}}</nowiki></code><br/><code><nowiki>{{Discord|id=951501892553424917}}</nowiki></code> || {{Discord|951501892553424917}}
|-
| <code><nowiki>{{Discord|951501892553424917}|full=yes}</nowiki></code> || {{Discord|951501892553424917|full=yes}}
|-
| <pre><nowiki>{{Discord|full=yes
|id = 951501892553424917
|width = 300px
|height = 500px
}}</nowiki></pre> || {{Discord|full=yes|id=951501892553424917|width=300px|height=500px}}
|}
== Dependencies ==
* As stated before, both Compact and Widget require the given Discord server to have Widgets enabled in its Server Settings.
* Both Compact and Widget require the <code>discordTemplate</code> gadget:
** [[MediaWiki:Gadgets/discordTemplate]]
** [[MediaWiki:Gadgets/discordTemplate/main.js]]
== TemplateData ==
<templatedata>
{
"params": {
"1": {
"aliases": [
"id"
],
"label": "Server ID",
"description": "The Discord server's ID.",
"example": "951501892553424917",
"type": "line",
"required": true
},
"full": {
"label": "Use full widget",
"example": "yes",
"type": "boolean",
"description": "Do you want to use the full widget?"
},
"width": {
"label": "Width (full widget only)",
"description": "A custom width for the full widget.",
"example": "300px",
"type": "line"
},
"height": {
"label": "Height (full widget only)",
"description": "A custom height for the full widget.",
"example": "500px",
"type": "line"
}
},
"description": "This template allows you to either use DiscordCompact or DiscordWidget to display information about a certain Discord server.",
"paramOrder": [
"1",
"full",
"width",
"height"
],
"format": "block"
}
</templatedata>
2b1165b9383a06a5766054d0d38b8b045cf83b25
Template:Main page box/end
10
149
172
2025-11-02T00:44:25Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly></div>
</div></includeonly><noinclude>
{{doc}}
[[Category:Main page templates]]
</noinclude>
506617faba565eb65144b21c3ead8fe5c2010b55
Template:Main page box/start
10
150
173
2025-11-02T00:44:25Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly><div class="mp-box <!--
These variables are used to determine if certain layouts should hide certain boxes.
The variable is created in and passed from [[Module:Main page]], and is formatted as a pseudo bitmask to reduce variable usage
An example of this variable would be "1,1,0," which would mean display on desktop and tablet but not on mobile
-->{{#ifeq:{{#explode:{{#var:imp-variable-display-box}}|,|0}}|0|mp-hide-on-desktop}} <!--
-->{{#ifeq:{{#explode:{{#var:imp-variable-display-box}}|,|1}}|0|mp-hide-on-tablet}} <!--
-->{{#ifeq:{{#explode:{{#var:imp-variable-display-box}}|,|2}}|0|mp-hide-on-mobile}} <!--
-->{{{class|}}}" style="grid-area:{{#var:imp-variable-id}}; {{{style|}}}" id="mp-box-{{#var:imp-variable-id}}" data-box-id="{{#var:imp-variable-id}}"><!--
-->{{#if:{{{title|{{{1|}}}}}}|
<h2> {{{title|{{{1|}}}}}} </h2>
}}<div class="mp-body"></includeonly><noinclude>
{{doc}}
[[Category:Main page templates]]
</noinclude>
62eedb503b63a36fc31a301f8ea6b15f6ff9bf60
Template:Main page box/preload
10
151
174
2025-11-02T00:44:26Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
{{Main page box/start
| title = $1
}}
Content goes here, between the start and end templates.
Feel free to use wikitext, tables, templates, new lines, whatever.
{{Main page box/end}}<includeonly><no<noinclude></noinclude>include>[[Category:Main page boxes]]</no<noinclude></noinclude>include></includeonly><!-- don't edit this line --><noinclude>
[[Category:Main page templates]]
</noinclude>
9b16288e15e3c8c9ede76b4dc76e538d2253cf23
Template:Main page
10
152
175
2025-11-02T00:44:26Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{#invoke:Main page|main}}
__NOTOC__
__NOEDITSECTION__
[[Category:{{SITENAME}}| ]][[Category:Pages using IMP]]</includeonly><noinclude>
{{doc}}
[[Category:Main page templates]]
</noinclude>
63495e8df9d827c4f470a286a50ece24bb2a2e49
Template:Main page box/create
10
153
176
2025-11-02T00:44:26Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
{{#tag: inputbox |
type = create
width = 40
default = {{{1|}}}
buttonlabel = Create this box
prefix = {{#or:{{{rootpage|}}}|{{MediaWiki:Mainpage}}}}/
placeholder = box name (no spaces)
preload = Template:Main page box/preload
summary = Created using preload
preloadparams[] = {{ucfirst:{{{1|Example}}}}}
}}<noinclude>[[Category:Main page templates]]</noinclude>
da58eca98a44a09e476c5b4a5cafde116b6cdac9
Template:Main page box
10
154
177
2025-11-02T00:44:27Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly><code>Template:Main page box</code> is not intended to be used directly, please use [[Template:Main page box/start]] and [[Template:Main page box/end]].</includeonly><noinclude>
This template is used to create the boxes of the IMProved Main Page (IMP) framework. '''It should not be called directly''', instead using {{tl|Main page box/start}} and {{tl|Main page box/end}}.
<div style="text-align:center;">
Use the box below to create a page with the required templates already in place, ready for you to add your content.
{{/create}}
The box name can not contain spaces or start with a number. Those are probably the only restrictions you'll run into, but for a full list see [https://developer.mozilla.org/en-US/docs/Web/CSS/custom-ident <custom-ident> on MDN web docs].
</div>
==Parameters==
These are the parameters used by {{tl|Main page box/start}}. All parameters are optional.
{| class="wikitable"
! Name !! Data type !! Description
|-
| title || Wikitext || The title of the box. This can be empty, in which case the box will contain only the content.
|-
| class || CSS classes || A list of classes to be passed to the box, separated by spaces and without quotes. Standard options are <code>centered-content</code> to vertically center contents, and <code>has-floating-image</code> in case floating images are needed in the box (normally the flex layout disallows this).
|-
| style || CSS declarations || Inline CSS to be applied directly to the box, without quotes. A common usage is <code>text-align:center;</code> for cases where it's desired for individual boxes to have centered text.
|}
[[Category:Main page templates]]
[[Category:Template documentation]]
</noinclude>
cbbd25d1eb0105a8be55d0cc174f385fc467ffad
Template:Main page box/start/doc
10
155
178
2025-11-02T00:44:27Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
See [[Template:Main page box]] for information on how to use this.
==TemplateData==
<templatedata>
{
"params": {
"class": {
"label": "Class",
"description": "Additional classes to give to the box wrapping this box.",
"example": "centered-content",
"suggestedvalues": [
"centered-content",
"has-floating-image"
]
},
"style": {
"label": "Style",
"description": "Inline CSS to add to the box wrapping this box",
"example": "text-align:center;",
"type": "string"
},
"title": {
"aliases": [
"1"
],
"label": "Title",
"description": "The title of this box.",
"example": "Welcome to the wiki!",
"type": "content",
"suggested": true
}
},
"description": "Creates a box for use on the main page.",
"paramOrder": [
"title",
"class",
"style"
],
"format": "block"
}
</templatedata>
<noinclude>[[Category:Template documentation]]</noinclude>
860e1be8fbf205ab2b3214cb91860a77fd3ef52b
Template:Main page box/end/doc
10
156
179
2025-11-02T00:44:27Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
See [[Template:Main page box]] for information on how to use this.
<noinclude>[[Category:Template documentation]]</noinclude>
e73182bed655118b10da971b634dc9c3bf3e3d39
Template:Main page/doc
10
157
180
2025-11-02T00:44:28Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
{{Uses Lua|Main page}}
This template is used to create an IMP Main Page. It uses [[Module:Main page]] to arrange a series of [[Template:Main page box]]es in a [https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_grid_layout CSS grid].
==Simple explanation==
The layout is made using keywords arranged in a grid. This grid has 3 columns on desktop-width screens, 2 columns on tablet, and 1 on mobile. Each can have as many rows as you want. Each keyword represents the same section and can span multiple rows and/or columns, but ''must'' form a contiguous rectangle of any dimension (1x1, 1x2, 2x2, 2x3, etc.).
For example, the following input to desktop:
<pre style="display:table;">
welcome welcome welcome
about links links
about contribute contribute
</pre>
would produce a grid resembling the following:
{| class="wikitable"
| style="background-color:rgba(0,255,0,0.15)" | welcome
| style="background-color:rgba(0,255,0,0.15)" | welcome
| style="background-color:rgba(0,255,0,0.15)" | welcome
|-
| style="background-color:rgba(255,0,255, 0.15)" | about
| style="background-color:rgba(0,0,255, 0.15)" | links
| style="background-color:rgba(0,0,255, 0.15)" | links
|-
| style="background-color:rgba(255,0,255, 0.15)" | about
| style="background-color:rgba(255,255,0, 0.15)" | contribute
| style="background-color:rgba(255,255,0, 0.15)" | contribute
|}
Where <code>welcome</code> is the contents of [[{{MediaWiki:Mainpage}}/welcome]], <code>about</code> is the contents of [[{{MediaWiki:Mainpage}}/about]], and so on. See [[Template:Main page box]] for more information about creating your own boxes.
If you enter a keyword that does not have a corresponding box already, you'll be prompted to create one when saving or previewing the page.
If you leave a keyword out of a certain layout, it will not be displayed on that layout. A warning will be given at the top of the edit preview in case this was an accident, but can be safely ignored if intentional.
For additional hints and information, see the comments that came on your main page or ask a wiki.gg staff member for help.
==Technical explanation==
For the CSS savvy, this section explains how it works a bit under the hood.
The input to desktop, tablet, and mobile create [https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties CSS variables] which are then used as the value of [https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-areas grid-template-areas] in media queries for screen widths >=1350px, >=990px, and <990px. The boxes are given an id based on their subpage name, which is then used by the module to find the template, as well as by the box templates to assign them a CSS id of <code>mp-box-<keyword></code>. Since these keywords are used directly in the grid layout, they must follow the rules of [https://developer.mozilla.org/en-US/docs/Web/CSS/custom-ident <custom-ident>] naming.
==Dependencies==
For this template to work properly, you need the following:
* [[Module:Main page]]
* All templates in [[:Category:Main page templates]].
* All CSS within the "Main page layout" section found in [[MediaWiki:Common.css]].
The <code>[[MediaWiki:Gadgets/mpEditLinks|mpEditLinks]]</code> gadget is also highly recommended. Its code can be found at [[MediaWiki:Gadgets/mpEditLinks/main.css]] and [[MediaWiki:Gadgets/mpEditLinks/main.js]].
==TemplateData==
<templatedata>
{
"params": {
"desktop": {
"label": "Desktop",
"description": "The layout for wide screens",
"required": true,
"type": "string"
},
"tablet": {
"label": "Tablet",
"description": "The layout for mid-width screens",
"required": true,
"type": "string"
},
"mobile": {
"label": "Mobile",
"description": "The layout for narrow screens",
"required": true,
"type": "string"
}
},
"description": "Creates an IMP Main Page.",
"format": "block"
}
</templatedata>
<noinclude>[[Category:Template documentation]]</noinclude>
5dea5039ec2effd7a253aa05fe5acd2c6c81d2ae
Template:Ct
10
158
181
2025-11-02T00:44:28Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<code><nowiki>[</nowiki>[[Special:CargoTables/{{{1}}}|{{{1}}}]]<nowiki>]</nowiki>{{#if:{{{2|}}}|.{{{2}}}}}</code><noinclude>
[[Category:Formatting templates]]</noinclude>
d868545d4d3eeb1545e963d063199a68abba7836
Template:Main page box/missing
10
159
182
2025-11-02T00:44:29Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
{{Main page box/start
| title = {{{1}}}
| style = text-align:center;
| class = missing
}}
The {{{1}}} box does not exist. Check your spelling or create it here:<br/>
{{Main page box/create|{{{1|}}}|rootpage = {{{rootpage|}}}}}<br/>
See [[Template:Main page box]] for more information.
{{Main page box/end}}<noinclude>[[Category:Main page templates]]</noinclude>
5cff88dacf33c912d4aa04c1541e684a5f3e79bb
Template:Iter
10
160
183
2025-11-02T00:44:29Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{#vardefine:varname|ITER_INDEX_{{#if:{{{1|}}}|{{{1}}}|default}}<!-- end vardefine -->}}<!--
main logic
-->{{#vardefineecho:{{#var:varname}}|
{{#expr:
{{#ifeq:{{lc:{{{reset|}}}<!-- end lc -->}}
|yes
|0
|{{#var:{{#var:varname}}|0}}
<!-- end ifeq -->}} + {{#if:{{{get|}}}|0|1}}
<!-- end expr -->}}
<!-- end vde -->}}</includeonly><noinclude>{{documentation}}
[[Category:Templates]]</noinclude>
c37a3625d58a115a140f129da248ec1c9f6cb55e
Template:Iter/doc
10
161
184
2025-11-02T00:44:29Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
This template helps you create indexed columns in tables (particularly [[support:Cargo|Cargo]] queries) and to retrieve iterator values when using the parser function <code><nowiki>{{#arraymaptemplate</nowiki></code> (bundled with Extension:ParserPower on wiki.gg).
== Simple counting ==
<pre>
* {{iter|}}
* {{iter|}}
* {{iter|}}
* {{iter|}}
</pre>
* {{iter|}}
* {{iter|}}
* {{iter|}}
* {{iter|}}
== Reset the counter ==
<pre>
* {{iter|reset=yes}}
* {{iter|}}
* {{iter|reset=yes}}
* {{iter|}}
</pre>
* {{iter|reset=yes}}
* {{iter|}}
* {{iter|reset=yes}}
* {{iter|}}
== Multiple counters ==
<pre>
* {{iter|key1}}
* {{iter|key2}}
* {{iter|key2}}
* {{iter|key1}}
</pre>
* {{iter|key1}}
* {{iter|key2}}
* {{iter|key2}}
* {{iter|key1}}
== Get value without incrementing ==
<pre>
* {{iter|reset=yes}}
* {{iter|}}
* {{iter|}}
* {{iter|get=yes}}
</pre>
* {{iter|reset=yes}}
* {{iter|}}
* {{iter|}}
* {{iter|get=yes}}
<noinclude>
[[Category:Template documentation]]
</noinclude>
20b5a53a6457493d2a2a9774b803511678a65760
Template:License/permission
10
162
185
2025-11-02T00:44:29Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>{{License/template
| source = {{{source|}}}
| type = permission
| icon = [[File:IN COPYRIGHT.svg|50px|link=|IN COPYRIGHT WITH PERMISSION]]
| text = This file is copyrighted. The copyright holder has given permission for its use on wiki.gg.
}}</includeonly><noinclude>
This template currently looks like: {{License/permission}}
See {{tl|License}} for full license documentation
[[Category:License templates]]</noinclude>
854af75c8477c36c50cb5d103ad8a933892fc322
186
185
2025-11-02T00:44:30Z
ARTIFICER
564804
Protected "[[Template:License/permission]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<includeonly>{{License/template
| source = {{{source|}}}
| type = permission
| icon = [[File:IN COPYRIGHT.svg|50px|link=|IN COPYRIGHT WITH PERMISSION]]
| text = This file is copyrighted. The copyright holder has given permission for its use on wiki.gg.
}}</includeonly><noinclude>
This template currently looks like: {{License/permission}}
See {{tl|License}} for full license documentation
[[Category:License templates]]</noinclude>
854af75c8477c36c50cb5d103ad8a933892fc322
Template:Flag
10
163
187
2025-11-02T00:44:30Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly><!--
--><span class="country-flag" title="{{{2|}}}">{{#if: {{{1|}}} | [[File:Flag {{{1|}}}.svg|x20px|link=]] | }}</span><!--
--></includeonly><!--
--><noinclude>{{doc}}[[Category:Formatting templates]]</noinclude>
9802f61bee0e36120c835608ccee85e72384341b
Template:Flag/doc
10
164
188
2025-11-02T00:44:30Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
This formatting template allows you to display country flags inline.
Available country flags can be seen in [[dev:Category:Country_flags|our Commons Wiki]].
== Usage ==
The template can be used with the following formatting: <code><nowiki>{{flag|code|Legend}}</nowiki></code>, where:
* <code>code</code> is the [[wikipedia:ISO 3166-1 alpha-2|ISO 3166-1 alpha-2]] code for the country flag.
* <code>Legend</code> is the legend displayed on hover (optional).
== Examples ==
{| class="wikitable"
! Code !! Result
|-
| <code><nowiki>{{flag|ca|Canada}}</nowiki></code> || {{flag|ca|Canada}}
|}
<noinclude>[[Category:Template documentation]]</noinclude>
1fb455be1ffbed259dd27df18dd447e605746ed4
Template:Disambig
10
165
189
2025-11-02T00:44:31Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#redirect [[Template:Disambiguation]]
f220bcb889e0ce686a839d64ec6c4359b0e8bfb7
Template:TOC limit
10
166
190
2025-11-02T00:44:31Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly><div class="toclimit-{{{1|{{{limit|3}}}}}}">__TOC__</div></includeonly><noinclude>
{{documentation}}
[[Category:Table of contents templates]]
</noinclude>
9187098528659316936c0da0589a7745f10e38e3
Template:TOC limit/doc
10
167
191
2025-11-02T00:44:31Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
This template inserts a Table of Contents that omits subheadings beyond a certain depth. The table obeys the same layout rules as the <nowiki>__TOC__</nowiki> [[mw:Help:Magic_words|magic word]]. Omitted sections still have section edit links in the article body. The main use for this template is situations where you want section edit links for ease of editing but don't want a full table of contents. '''Before using this template, consider whether and why it would be helpful to readers and other editors.'''
== Usage ==
{{tlx|TOC limit}} or {{tlx|TOC limit|3}}
The template defaults to including second- and third-level headings, e.g. those numbered "1" and "1.1" in the TOC. (Note: {{tlx|TOC limit|1}} does nothing: the first-level heading on a page is, by default, the page title.)
You can specify a different limit by adding a header level:
{{tlx|TOC limit|4}}
4 allows for fourth-level headings, e.g. "1.1.1", but omits any subheadings below that from the TOC.
The template works by hiding the lower levels with CSS. See [[Mediawiki:Common.css]].
== TOC levels versus wikitext header levels ==
The heading levels in the TOC normally correspond to the header levels in the wikitext, so a <code>== Level-2 header ==</code> will normally generate the first-level ("1") TOC headings, a <code>=== Level-3 header ===</code> will normally generate the second-level ("1.1") TOC headings, and so on. This correspondence does ''not'' hold if the page contains <code>= Level-1 headers =</code> or skips header levels. For example, wikitext like this:
<pre>
== Level-2 heading (A) ==
=== Level-3 heading (B) ===
== Level-2 heading (C) ==
====== Level-6 heading (D) ======
= Level-1 heading (E) =
== Level-2 heading (F) ==
=== Level-3 heading (G) ===
</pre>
will generate a TOC like this:
{| class="toc"
|<div style="text-align:center"><b>Contents</b></div>
<ul>
<li class="toclevel-1 tocsection-1"><span class="tocnumber">1</span> <span class="toctext">Level-2 heading (A)</span><ul>
<li class="toclevel-2 tocsection-2"><span class="tocnumber">1.1</span> <span class="toctext">Level-3 heading (B)</span></li>
</ul></li>
<li class="toclevel-1 tocsection-1"><span class="tocnumber">2</span> <span class="toctext">Level-2 heading (C)</span><ul>
<li class="toclevel-2 tocsection-2"><span class="tocnumber">2.1</span> <span class="toctext">Level-6 heading (D)</span></li>
</ul></li>
<li class="toclevel-1 tocsection-1"><span class="tocnumber">3</span> <span class="toctext">Level-1 heading (E)</span><ul>
<li class="toclevel-2 tocsection-2"><span class="tocnumber">3.1</span> <span class="toctext">Level-2 heading (F)</span><ul>
<li class="toclevel-3 tocsection-3"><span class="tocnumber">3.1.1</span> <span class="toctext">Level-3 heading (G)</span></li>
</ul></li>
</ul></li>
</ul>
|}
Using <code><nowiki>{{TOC limit}}</nowiki></code> on this page ''would not'' hide header D, because even though it is a level-6 heading it is shown at the second level in the TOC. And it ''would'' hide header G even though it is a level-3 heading just like header B, because header G is shown at the third level in the TOC while header B is shown at the second level.
== Conflicts ==
This template does not interact well with the {{tl|TOC right}} template. To achieve the correct effect, use those with a limit parameter. For example, {{tlx|TOC right|2=limit=2}} has the effect that {{tlx|TOC right}} and {{tlx|TOC limit|2}} would have - if they worked together.
== TemplateData ==
<templatedata>
{
"params": {
"1": {
"aliases": [
"limit"
],
"label": "Limit",
"description": "Maximum header depth to be included in table of contents",
"default": "3",
"suggested": true,
"type": "number"
}
},
"description": "Inserts a Table of Contents that omits subheadings beyond a certain depth."
}
</templatedata>
<noinclude>[[Category:Template documentation]]</noinclude>
8582cad25d72e508a04a81c36ef5ecb663a32bc7
Template:TOC right
10
168
192
2025-11-02T00:44:32Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly><div class="tocright {{#if:{{{limit|}}}|toclimit-{{{limit}}}}}">__TOC__</div></includeonly><noinclude>
{{documentation}}
[[Category:Table of contents templates]]
</noinclude>
8b94caa5343acd906cad9e74465f0ea5ce4e9549
Template:TOC right/doc
10
169
193
2025-11-02T00:44:32Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
{{tl|TOC right}} forces the auto-generated Table of Contents for an article to appear floated to the right side of the page in order to improve article layout.
==Usage==
Insert <code><nowiki>{{TOC right}}</nowiki></code> at the point in the article where you want the top of the Table of Contents box to appear. This should usually be after the text of the lead section, and just before the first section heading. Use with {{tl|clear}} to prevent collision with text. Avoid placing the TOC in a visually poor location. Crossing a section division is probably a poor idea.
;limit
: Limits the depth of subheadings shown. For instance using <code>limit=4</code> will hide the fourth level and deeper subheadings in the hierarchy. And <code>limit=2</code> will hide all subheadings leaving only the main headings. This works by hiding the lower levels with CSS. See {{tl|TOC limit}} for more information on this.
Do not place this template so that the TOC aligns with a large image or infobox; this breaks the layout on narrow screens (even users with screens as wide as 1024px wide can have problems). Also, a TOC that crosses a section division is probably a poor idea, if that can be avoided.
Unless the section in which the {{tl|TOC right}} is placed is long enough, the result may well be undesirable.
It should only be used in cases where the TOC gets in the way of other content or is detrimental to the layout of the page; it should ''not'' simply be used for aesthetics since it tampers with the standard appearance of articles.
==TemplateData==
<templatedata>
{
"params": {
"limit": {
"label": "Limit",
"description": "Limits the depth of subheadings shown. For instance using limit=4 will hide the fourth level and deeper subheadings in the hierarchy. And limit=2 will hide all subheadings leaving only the main headings. This works by hiding the lower levels with CSS",
"type": "number"
}
},
"description": "{{TOC right}} forces the auto-generated \"Table of Contents\" for an article to appear floated to the right side of the page (as seen right), in order to improve article layout.",
"paramOrder": [
"limit"
],
"format": "inline"
}
</templatedata>
<noinclude>[[Category:Template documentation]]</noinclude>
88415e28677a029fbca8963e109305c2d2d79643
Template:Toc limit
10
170
194
2025-11-02T00:44:32Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#REDIRECT [[Template:TOC limit]]
cfa656c80245fbc1966e109758445db069c69934
Template:Toclimit
10
171
195
2025-11-02T00:44:32Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#REDIRECT [[Template:TOC limit]]
cfa656c80245fbc1966e109758445db069c69934
Template:Toc right
10
172
196
2025-11-02T00:44:33Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#REDIRECT [[Template:TOC right]]
fc00258b0a19738ebc9c13dbcc88881f9d5bff3e
Template:Tocright
10
173
197
2025-11-02T00:44:33Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
#REDIRECT [[Template:TOC right]]
fc00258b0a19738ebc9c13dbcc88881f9d5bff3e
Category:Documentation templates
14
174
198
2025-11-02T00:44:33Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
[[Category:Templates]]
06eecdec29f6cb215c99cf216d1e3bdc8c30a95e
Category:Templates
14
175
199
2025-11-02T00:44:34Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
[[Category:{{SITENAME}}]]
dd8aaa34cf600c1567d240a3f4bc615164a11592
Category:Hardcore Doom Wiki
14
176
200
2025-11-02T00:44:34Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
This is the top-level category. It contains meta categories and pages about the wiki.
8935f2b3e97edfeadd7bb206f1e17c03099ec24a
Category:Notice templates
14
177
201
2025-11-02T00:44:34Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
[[Category:Templates]]
06eecdec29f6cb215c99cf216d1e3bdc8c30a95e
Category:Formatting templates
14
178
202
2025-11-02T00:44:35Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
[[Category:Templates]]
06eecdec29f6cb215c99cf216d1e3bdc8c30a95e
Category:License templates
14
179
203
2025-11-02T00:44:35Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
[[Category:Templates]]
06eecdec29f6cb215c99cf216d1e3bdc8c30a95e
Category:Pages using DynamicPageList3 parser function
14
180
204
2025-11-02T00:44:35Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__HIDDENCAT__
__EXPECTUNUSEDCATEGORY__
[[Category:Wiki maintenance]]
d17f98d5d77b5951b7a80755914239533ad6aba6
Category:Candidates for deletion
14
181
205
2025-11-02T00:44:35Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__EXPECTUNUSEDCATEGORY__
[[Category:Wiki maintenance]]
786037995b8f7e89762a8ea13b84ade091453c00
Category:Hidden categories
14
182
206
2025-11-02T00:44:36Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
These categories are hidden on article pages by using the <code><nowiki>__HIDDENCAT__</nowiki></code> [[mw:Help:Magic_words|magic word]].
[[Category:Wiki maintenance]]
b5f9c4dde8b4f1b32821661c1886db1f5afdeeaf
Category:Images
14
183
207
2025-11-02T00:44:36Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
[[Category:Media]]
b141d2b9971d6efe9f59bd03449781e71411c631
Category:Infobox templates
14
184
208
2025-11-02T00:44:36Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
[[Category:Templates]]
06eecdec29f6cb215c99cf216d1e3bdc8c30a95e
Category:Logos
14
185
209
2025-11-02T00:44:37Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
[[Category:Images]]
8820b63e35aedd9d2666fe40b965d4e91ce0a106
Category:Media
14
186
210
2025-11-02T00:44:37Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
[[Category:{{SITENAME}}]]
dd8aaa34cf600c1567d240a3f4bc615164a11592
Category:Pages containing omitted template arguments
14
187
211
2025-11-02T00:44:37Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__EXPECTUNUSEDCATEGORY__
[[Category:Wiki maintenance]]
786037995b8f7e89762a8ea13b84ade091453c00
Category:Pages using TabberTransclude parser tag
14
188
212
2025-11-02T00:44:38Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__HIDDENCAT__
__EXPECTUNUSEDCATEGORY__
[[Category:Wiki maintenance]]
d17f98d5d77b5951b7a80755914239533ad6aba6
Category:Pages using Tabber parser tag
14
189
213
2025-11-02T00:44:38Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__HIDDENCAT__
__EXPECTUNUSEDCATEGORY__
[[Category:Wiki maintenance]]
d17f98d5d77b5951b7a80755914239533ad6aba6
Category:Pages using duplicate arguments in template calls
14
190
214
2025-11-02T00:44:39Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__EXPECTUNUSEDCATEGORY__
[[Category:Wiki maintenance]]
786037995b8f7e89762a8ea13b84ade091453c00
Category:Pages where expansion depth is exceeded
14
191
215
2025-11-02T00:44:39Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__EXPECTUNUSEDCATEGORY__
[[Category:Wiki maintenance]]
786037995b8f7e89762a8ea13b84ade091453c00
Category:Pages where template include size is exceeded
14
192
216
2025-11-02T00:44:39Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__EXPECTUNUSEDCATEGORY__
[[Category:Wiki maintenance]]
786037995b8f7e89762a8ea13b84ade091453c00
Category:Pages where the unstrip depth limit is exceeded
14
193
217
2025-11-02T00:44:40Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__EXPECTUNUSEDCATEGORY__
[[Category:Wiki maintenance]]
786037995b8f7e89762a8ea13b84ade091453c00
Category:Pages where the unstrip size limit is exceeded
14
194
218
2025-11-02T00:44:40Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__EXPECTUNUSEDCATEGORY__
[[Category:Wiki maintenance]]
786037995b8f7e89762a8ea13b84ade091453c00
Category:Pages with broken file links
14
195
219
2025-11-02T00:44:40Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
[[Category:Wiki maintenance]]
197b5fc8ebad5537759adacc0079b4b2662cb4c4
Category:Pages with ignored display titles
14
196
220
2025-11-02T00:44:40Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__EXPECTUNUSEDCATEGORY__
[[Category:Wiki maintenance]]
786037995b8f7e89762a8ea13b84ade091453c00
Category:Pages with math errors
14
197
221
2025-11-02T00:44:41Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__EXPECTUNUSEDCATEGORY__
[[Category:Wiki maintenance]]
786037995b8f7e89762a8ea13b84ade091453c00
Category:Pages with non-numeric formatnum arguments
14
198
222
2025-11-02T00:44:41Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__EXPECTUNUSEDCATEGORY__
[[Category:Wiki maintenance]]
786037995b8f7e89762a8ea13b84ade091453c00
Category:Pages with reference errors
14
199
223
2025-11-02T00:44:41Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__EXPECTUNUSEDCATEGORY__
[[Category:Wiki maintenance]]
786037995b8f7e89762a8ea13b84ade091453c00
Category:Pages with script errors
14
200
224
2025-11-02T00:44:41Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__EXPECTUNUSEDCATEGORY__
[[Category:Wiki maintenance]]
786037995b8f7e89762a8ea13b84ade091453c00
Category:Pages with syntax highlighting errors
14
201
225
2025-11-02T00:44:42Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__EXPECTUNUSEDCATEGORY__
[[Category:Wiki maintenance]]
786037995b8f7e89762a8ea13b84ade091453c00
Category:Pages with template loops
14
202
226
2025-11-02T00:44:42Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__EXPECTUNUSEDCATEGORY__
[[Category:Wiki maintenance]]
786037995b8f7e89762a8ea13b84ade091453c00
Category:Pages with too many expensive parser function calls
14
203
227
2025-11-02T00:44:42Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__EXPECTUNUSEDCATEGORY__
[[Category:Wiki maintenance]]
786037995b8f7e89762a8ea13b84ade091453c00
Category:Promotional images
14
204
228
2025-11-02T00:44:43Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
Official images used for purposes of promoting the game, that may not actually represent gameplay.
[[Category:Images]]
80b893c439747ce681cf18cc579c3bc4c65cd502
Category:Stubs
14
205
229
2025-11-02T00:44:43Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__EXPECTUNUSEDCATEGORY__
[[Category:Wiki maintenance]]
786037995b8f7e89762a8ea13b84ade091453c00
Category:Template documentation
14
206
230
2025-11-02T00:44:43Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
[[Category:Templates]]
[[Category:Wiki maintenance]]
c1800be0da4588b3b652fa5324aade2c496fb3c5
Category:Templates with no documentation
14
207
231
2025-11-02T00:44:43Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__EXPECTUNUSEDCATEGORY__
[[Category:Templates]]
[[Category:Wiki maintenance]]
b1ff76c0593194e53e6bf42f37ca337a5493c57e
Category:Wiki maintenance
14
208
232
2025-11-02T00:44:44Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
The sub-categories of this category contain pages that have been identified as needing attention for one or more of the following reasons:
* Changes have been suggested that should be discussed first or are under discussion.
* The page has flaws that need addressing by an editor with the knowledge or skills to help.
* The action the page needs requires special rights.
''See also:''
* [[Special:BrokenRedirects|Broken redirects]]
* [[Special:DoubleRedirects|Double redirects]]
* [[Special:UncategorizedCategories|Uncategorized categories]]
* [[Special:UncategorizedFiles|Uncategorized files]]
* [[Special:UncategorizedPages|Uncategorized pages]]
* [[Special:UncategorizedTemplates|Uncategorized templates]]
* [[Special:WantedCategories|Wanted categories]]
* [[Special:WantedFiles|Wanted files]]
* [[Special:WantedPages|Wanted pages]]
* [[Special:WantedTemplates|Wanted templates]]
* [[Special:TrackingCategories|Other special tracking categories]]
[[Category:{{SITENAME}}]]
4b90dc0dbd8c91e131e4ffcf22360b1c837b9717
Category:Wiki skin images
14
209
233
2025-11-02T00:44:44Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
[[Category:Images]]
8820b63e35aedd9d2666fe40b965d4e91ce0a106
Category:Pages using DynamicPageList3 dplvar parser function
14
210
234
2025-11-02T00:44:45Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__HIDDENCAT__
__EXPECTUNUSEDCATEGORY__
[[Category:Wiki maintenance]]
d17f98d5d77b5951b7a80755914239533ad6aba6
Category:Pages including data maps failing validation
14
211
235
2025-11-02T00:44:45Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__EXPECTUNUSEDCATEGORY__
__HIDDENCAT__
[[Category:Wiki maintenance]]
57e36e9878c3eb806aa6ee6f748a5c5e0cdd5a97
Category:Pages including data maps
14
212
236
2025-11-02T00:44:45Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__HIDDENCAT__
__EXPECTUNUSEDCATEGORY__
[[Category:Wiki maintenance]]
d17f98d5d77b5951b7a80755914239533ad6aba6
Category:Maps failing data validation
14
213
237
2025-11-02T00:44:46Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__EXPECTUNUSEDCATEGORY__
__HIDDENCAT__
[[Category:Wiki maintenance]]
57e36e9878c3eb806aa6ee6f748a5c5e0cdd5a97
Category:Legal notices
14
214
238
2025-11-02T00:44:46Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
[[Category:{{SITENAME}}]]
dd8aaa34cf600c1567d240a3f4bc615164a11592
Category:Pages setting LuaCache keys
14
215
239
2025-11-02T00:44:46Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__EXPECTUNUSEDCATEGORY__
__HIDDENCAT__
[[Category:Wiki maintenance]]
57e36e9878c3eb806aa6ee6f748a5c5e0cdd5a97
Category:Hatnote templates
14
216
240
2025-11-02T00:44:47Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
[[Category:Templates]]
06eecdec29f6cb215c99cf216d1e3bdc8c30a95e
Category:Key template documentation
14
217
241
2025-11-02T00:44:47Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
[[Category:Template documentation]]
e65ecf60878d4707b3b4c1e3962615e2d5f3b2ab
Category:Navigation templates
14
218
242
2025-11-02T00:44:47Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
[[Category:Templates]]
06eecdec29f6cb215c99cf216d1e3bdc8c30a95e
Category:Pages with failing Cargo queries
14
219
243
2025-11-02T00:44:48Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__EXPECTUNUSEDCATEGORY__
[[Category:Wiki maintenance]]
786037995b8f7e89762a8ea13b84ade091453c00
Category:Pages with math render errors
14
220
244
2025-11-02T00:44:48Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__EXPECTUNUSEDCATEGORY__
[[Category:Wiki maintenance]]
786037995b8f7e89762a8ea13b84ade091453c00
Category:Pages with DRUID infoboxes
14
221
245
2025-11-02T00:44:49Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
This category contains every page with a DRUID infobox. It can be used for maintenance but primarily exists to enable the use of gadgets for targeted CSS and JS.
__HIDDENCAT__
__EXPECTUNUSEDCATEGORY__
[[Category:Categories for loading gadgets]]
17ed4520e5c453209616df3c9b2306fce8ceb12f
Category:Pages with navboxes
14
222
246
2025-11-02T00:44:49Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
This category contains every page with a {{tl|navbox}}. It can be used for maintenance but primarily exists to enable the use of gadgets for targeted CSS and JS.
__HIDDENCAT__
__EXPECTUNUSEDCATEGORY__
[[Category:Categories for loading gadgets]]
3e48f396fafee5d8aecf6cd0dcb554c769f485a9
Category:Pages with amboxes
14
223
247
2025-11-02T00:44:49Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
This category contains every page with an {{tl|ambox}}. It can be used for maintenance but primarily exists to enable the use of gadgets for targeted CSS and JS.
__HIDDENCAT__
__EXPECTUNUSEDCATEGORY__
[[Category:Categories for loading gadgets]]
de382f794395f344d0147dbb96b9542d6f38f624
Category:Pages with hatnotes
14
224
248
2025-11-02T00:44:50Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
This category contains every page with a {{tl|hatnote}}. It can be used for maintenance but primarily exists to enable the use of gadgets for targeted CSS and JS.
__HIDDENCAT__
__EXPECTUNUSEDCATEGORY__
[[Category:Categories for loading gadgets]]
4ac7721cfcffb2f181820164d95f3af8d86c4fd7
Category:Pages with spoilers
14
225
249
2025-11-02T00:44:50Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
This category contains every page with a {{tl|spoiler}}. It can be used for maintenance but primarily exists to enable the use of gadgets for targeted CSS and JS.
__HIDDENCAT__
__EXPECTUNUSEDCATEGORY__
[[Category:Categories for loading gadgets]]
5822aa87e8a8897673ff589d00d2f0d622aa3be5
Category:Pages with quotes
14
226
250
2025-11-02T00:44:51Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
This category contains every page with a {{tl|quote}}. It can be used for maintenance but primarily exists to enable the use of gadgets for targeted CSS and JS.
__HIDDENCAT__
__EXPECTUNUSEDCATEGORY__
[[Category:Categories for loading gadgets]]
2f764cddd1fb264f48b896ffd6e892df3c391e90
Category:Pages with colors
14
227
251
2025-11-02T00:44:51Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
This category contains every page with a {{tl|color}}. It can be used for maintenance but primarily exists to enable the use of gadgets for targeted CSS and JS.
__HIDDENCAT__
__EXPECTUNUSEDCATEGORY__
[[Category:Categories for loading gadgets]]
bcca0312385263c30522c744df6a8c8856c68fab
Category:Main page templates
14
228
252
2025-11-02T00:44:51Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
[[Category:Templates]]
06eecdec29f6cb215c99cf216d1e3bdc8c30a95e
Category:Main page boxes
14
229
253
2025-11-02T00:44:52Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
[[Category:Main page templates]]
ce086f8cfa39aeb8137ffe34e5d41aa38300cf4e
Category:Pages using the RSS extension
14
230
254
2025-11-02T00:44:52Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__HIDDENCAT__
__EXPECTUNUSEDCATEGORY__
[[Category:Wiki maintenance]]
d17f98d5d77b5951b7a80755914239533ad6aba6
Category:Pages with Discord embeds
14
231
255
2025-11-02T00:44:52Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
This category contains every page with a {{tl|Discord}} embed. It can be used for maintenance but primarily exists to enable the use of gadgets for targeted CSS and JS.
__HIDDENCAT__
__EXPECTUNUSEDCATEGORY__
[[Category:Categories for loading gadgets]]
11ff5616854d8913d2c371ae3c2c610278651846
Category:Categories for loading gadgets
14
232
256
2025-11-02T00:44:53Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
[[Category:Wiki maintenance]]
197b5fc8ebad5537759adacc0079b4b2662cb4c4
Category:Table of contents templates
14
233
257
2025-11-02T00:44:53Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
[[Category:Templates]]
06eecdec29f6cb215c99cf216d1e3bdc8c30a95e
Category:Pages using IMP
14
234
258
2025-11-02T00:44:53Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
This category lists all pages that are using [[Template:Main page]]. This category is used by [[Mediawiki:Gadgets/mpEditLinks]] to only load the JS on relevant pages.
__HIDDENCAT__
[[Category:Categories for loading gadgets]]
9c8aa4509bbc2f2e7d56f8bc1bfebd828d20d914
Category:Escaped character templates
14
235
259
2025-11-02T00:44:54Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
[[Category:Formatting templates]]
b0977d99bfd84d652e4508b3691eb776cf54a6dd
Category:Pages using EmbedVideo
14
236
260
2025-11-02T00:44:54Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__HIDDENCAT__
__EXPECTUNUSEDCATEGORY__
[[Category:Wiki maintenance]]
d17f98d5d77b5951b7a80755914239533ad6aba6
Category:Pages with EmbedVideo errors
14
237
261
2025-11-02T00:44:55Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
__HIDDENCAT__
__EXPECTUNUSEDCATEGORY__
[[Category:Wiki maintenance]]
d17f98d5d77b5951b7a80755914239533ad6aba6
MediaWiki:Vector.css
8
238
262
2025-11-02T00:44:55Z
ARTIFICER
564804
Importing default loadout
css
text/css
/* All CSS here will be loaded for users of the Vector skin */
/*
This is the wiki.gg default loadout,
please do not modify it inline. To add your own skin customizations,
scroll down to the end of the default loadout (or search for "[END]" to jump there).
If you modify the sheet above that point, your changes may be overwritten in updates without warning!!!
If you want to maintain your own CSS for annual MediaWiki updates & be responsible for ALL bugfixes YOURSELF, change UPDATE in the following line to say NOUPDATE:
DLW: UPDATE
DLW VERSION: 2.2.3.5
IMPORTANT: if you are updating your wiki from a version before May 22, 2025,
you need to copy [[MediaWiki:Gadgets/vectorScripts]] and [[MediaWiki:Gadgets/vectorScripts/main.js]] as well or your navigation tabs will break.
*/
/*********************************************************
* Backwards compatibility with deprecated variable names *
**********************************************************/
:root {
--wiki-heading-color: var(--wiki-content-heading-color);
--wiki-heading-font-family: var(--wiki-content-heading-font-family);
--wiki-firstheading-font-family: var(--wiki-content-firstheading-font-family);
}
/****************************************
* End backwards compatibility variables *
*****************************************/
/************************************
* Body, head, and general framework *
*************************************/
:root{
--wiki-logo-box-width: calc(var(--wiki-sidebar-width, 10em) * (1 - var(--wiki-is-top-logo, 0)) + min( var(--wiki-logo-file-width, 160) / var(--wiki-logo-file-height, 160) * var(--wiki-logo-height, 160px), 100vw - var(--wiki-left-spacing, 0.5em) - var(--wiki-right-spacing, 0px) - 18px, var(--wiki-page-content-max-width, 9999px) ) * var(--wiki-is-top-logo, 0)); /* 18px: the scrollbar */
--wiki-logo-box-height: calc(var(--wiki-logo-file-height, 160) / var(--wiki-logo-file-width, 160) * var(--wiki-logo-box-width));
}
html, body {
height: auto;
min-height: 100%;
}
/* site background */
html {
background-color: var(--wiki-body-background-color);
background-image: var(--wiki-body-background-image);
/* the following have fallbacks for backwards compatibility with older versions of the loadout */
background-position: var(--wiki-body-background-position, top center);
background-size: var(--wiki-body-background-size, cover);
background-repeat: var(--wiki-body-background-repeat, no-repeat);
background-attachment: var(--wiki-body-background-attachment, fixed);
}
body {
background: none;
font-family: var(--wiki-body-font-family);
accent-color: var(--wiki-accent-color);
padding-top: calc(var(--wikigg-header-height) + var(--wiki-top-spacing, 0px));
padding-bottom: var(--wiki-bottom-spacing, 0px);
padding-left: var(--wiki-left-spacing, 0px);
padding-right: var(--wiki-right-spacing, 0px);
box-sizing: border-box;
}
.skinpref-limited-width body, body.skinpref-limited-width {
--wiki-page-content-max-width: var(--wiki-content-reduced-max-width, 1300px);
}
/* clear fix */
body::after {
content: "";
display: table;
clear: both;
}
.vector-body{
z-index:1; /* base z-index for popups. */
}
#mw-page-base,
#mw-head-base {
background: none;
--height: calc(var(--wiki-navigation-height, 3em) + var(--wiki-content-border-width, 1px) * var(--wiki-is-navigation-inside-content, 0) + var(--wiki-is-top-logo, 0) * (var(--wiki-logo-box-height, 160px) + var(--wiki-logo-margin, 15px))); /* if not is-top-logo, height of navigation, else height of navigation + logo-height + logo-margin */
height: var(--height);
}
#mw-page-base {
max-width: var(--wiki-page-content-max-width, 9999px);
margin: auto;
}
#mw-head-base {
width: calc(min(100%, var(--wiki-page-content-max-width, 9999px)) - var(--wiki-sidebar-width, 10em) - var(--wiki-gap-between-sidebar-and-content, 0.5em));
margin-top: calc(-1 * var(--height));
margin-left: calc(max(0px, 100% - var(--wiki-page-content-max-width, 9999px)) / 2 + var(--wiki-sidebar-width, 10em) + var(--wiki-gap-between-sidebar-and-content, 0.5em));
}
/* let ul default to text that respects color */
ul {
list-style-image: none;
}
/************************
* End general framework *
*************************/
/**************
* Vector tabs *
***************/
/* prevent margin collapse */
.content-wrapper::before {
content: " ";
display: table;
}
.content-wrapper{
--navigation-border-bottom-width: calc(var(--wiki-navigation-border-bottom-width, calc(var(--wiki-is-navigation-inside-content, 0) * var(--wiki-navigation-selected-border-width, 1px) + (1 - var(--wiki-is-navigation-inside-content, 0)) * var(--wiki-content-border-width, 1px))));
}
/****** navbar (#mw-head) ******/
.vector-menu-tabs .mw-list-item,
#p-cactions, #p-variants {
float: unset;
line-height: 1.5; /* fallback */
line-height: round(nearest, calc(var(--wiki-navigation-font-size,0.8125em)*1.5), 1px);
box-sizing: border-box;
white-space: nowrap;
}
#mw-head {
--icon-star-filled: url("data:image/svg+xml,%3C%3Fxml version='1.0'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' id='Outlined'%3E%3Cg style='fill:%23000000;fill-opacity:1' id='Fill'%3E%3Cpath style='fill:%23000000;fill-opacity:1' id='path1380' d='M 28.61,11.67 H 20 L 17.34,3.47 C 16.920093,2.1973942 15.119907,2.1973942 14.7,3.47 L 12,11.67 H 3.39 c -1.3409796,0.0031 -1.900508,1.71581 -0.82,2.51 l 7,5.07 -2.68,8.21 C 6.5980433,28.35747 7.2662365,29.278767 8.21,29.28 8.4953889,29.267666 8.7705436,29.170143 9,29 l 7,-5.07 7,5.07 c 0.236205,0.170386 0.518805,0.264586 0.81,0.27 0.943763,-0.0012 1.611957,-0.92253 1.32,-1.82 l -2.66,-8.21 7,-5.07 c 1.075277,-0.810084 0.486081,-2.522863 -0.86,-2.5 z' /%3E%3C/g%3E%3C/svg%3E");
--icon-star-empty: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M20 7h-7L10 .5 7 7H0l5.46 5.47-1.64 7 6.18-3.7 6.18 3.73-1.63-7zm-10 6.9-3.76 2.27 1-4.28L3.5 8.5h4.61L10 4.6l1.9 3.9h4.6l-3.73 3.4 1 4.28z'/%3E%3C/svg%3E%0A");
/* icon below is from https://tabler-icons.io/ */
--icon-chevron-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='icon icon-tabler icon-tabler-chevron-down' width='24' height='24' viewBox='0 0 24 24' stroke-width='2' stroke='currentColor' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M6 9l6 6l6 -6'%3E%3C/path%3E%3C/svg%3E");
margin-left: calc(var(--wiki-sidebar-width, 10em) + var(--wiki-gap-between-sidebar-and-content, 0.5em));
width: auto;
height: var(--wiki-navigation-height);
margin-top: calc(-1 * (var(--wiki-navigation-height) + var(--wiki-content-border-width, 1px) * var(--wiki-is-navigation-inside-content, 0)));
position: relative;
display: flex;
align-items: stretch;
z-index: 4; /* above #mw-panel and .mw-indicators */
background: var(--wiki-navigation-box-background, none);
border: calc(var(--wiki-content-border-width, 1px) * var(--wiki-is-navigation-inside-content, 0)) var(--wiki-content-border-style, solid) var(--wiki-content-border-color);
border-bottom-width: 0;
border-radius: var(--wiki-content-border-top-radius, var(--wiki-content-border-radius, 0px)) var(--wiki-content-border-top-radius, var(--wiki-content-border-radius, 0px)) 0 0;
border-image: var(--wiki-navigation-box-border-image, none);
backdrop-filter: var(--wiki-navigation-box-backdrop-filter, none);
}
/* top border of the content */
#mw-head::before {
content: "";
display: block;
box-sizing: border-box;
position: absolute;
top: calc(100% - min(var(--wiki-navigation-left-spacing, 0px) * 999, var(--navigation-border-bottom-width)) + var(--navigation-border-bottom-width));
left: 0;
width: calc(max(var(--wiki-navigation-left-spacing, 0px), var(--navigation-border-bottom-width)));
height: calc(max(var(--wiki-content-border-top-radius, var(--wiki-content-border-radius, 0px)) * (1 - var(--wiki-is-navigation-inside-content, 0)), var(--navigation-border-bottom-width)));
border: 0 var(--wiki-navigation-border-bottom-style, var(--wiki-navigation-selected-border-style, solid)) var(--wiki-navigation-border-bottom-color, var(--wiki-navigation-selected-border-color));
border-left-width: var(--navigation-border-bottom-width);
border-top-width: var(--navigation-border-bottom-width);
border-top-left-radius: calc(var(--wiki-content-border-top-radius, var(--wiki-content-border-radius, 0px)) * (1 - var(--wiki-is-navigation-inside-content, 0)));
}
#left-navigation,
#right-navigation {
float: none;
margin: 0;
display: flex;
align-items: flex-end;
margin-bottom: calc(-1 * var(--navigation-border-bottom-width));
}
#left-navigation {
flex: 0 0 auto;
justify-content: flex-start;
}
#right-navigation {
flex: 1 1 auto;
justify-content: flex-end;
}
#left-navigation::before,
#left-navigation::after,
#right-navigation::before,
#right-navigation::after {
content: "";
display: block;
height: 0;
border-bottom: var(--navigation-border-bottom-width) var(--wiki-navigation-border-bottom-style, var(--wiki-navigation-selected-border-style, solid)) var(--wiki-navigation-border-bottom-color, var(--wiki-navigation-selected-border-color));
flex: 0 0 auto;
}
#left-navigation::before {
box-sizing: border-box;
width: var(--wiki-navigation-left-spacing, 0px);
border-bottom-width: 0;
}
#left-navigation::after {
width: var(--wiki-navigation-gap-between-left-and-right);
}
#right-navigation::before {
flex: 1 1 auto;
width: auto;
}
#right-navigation::after {
width: var(--wiki-navigation-right-spacing);
display: none; /* only for desktop */
}
/*** tabs ***/
/* reset */
.vector-menu,
.vector-menu *,
.vector-menu-tabs-legacy li {
background: none;
}
.vector-menu input {
border: 0;
}
/* tabs list */
.vector-menu-tabs {
height: unset;
padding: unset;
}
.vector-menu-tabs .vector-menu-content {
height: 100%;
}
.vector-menu-tabs-legacy ul{
float: none;
}
.vector-menu-tabs .vector-menu-content-list {
display: flex;
align-items: flex-end;
}
/* tab */
.vector-menu-tabs .mw-list-item,
.vector-menu-dropdown {
/* outer box of normal tabs: border-bottom */
border-bottom: var(--navigation-border-bottom-width) var(--wiki-navigation-border-bottom-style, var(--wiki-navigation-selected-border-style, solid)) var(--wiki-navigation-border-bottom-color, var(--wiki-navigation-selected-border-color));
position: relative;
margin-right: max(0px, var(--wiki-navigation-tab-spacing)); /* make space for gap */
height: auto;
padding-bottom: var(--wiki-navigation-bottom-spacing, 0px);
cursor: auto;
}
.vector-menu-dropdown .vector-menu-checkbox{
height: calc(100% - var(--wiki-navigation-bottom-spacing, 0px));
}
.vector-menu-tabs .mw-list-item:hover,
.vector-menu-dropdown:hover{
border-bottom-color: var(--wiki-navigation-border-bottom-color--hover, var(--wiki-navigation-border-bottom-color--hover, var(--wiki-navigation-border-color, var(--wiki-content-border-color))));
}
.vector-menu-tabs .mw-list-item::after,
.vector-menu-dropdown::after {
/* gap */
content: "";
display: block;
width: max(0px, var(--wiki-navigation-tab-spacing));
height: 0;
border-bottom: var(--navigation-border-bottom-width) var(--wiki-navigation-border-bottom-style, var(--wiki-navigation-selected-border-style, solid)) var(--wiki-navigation-border-bottom-color, var(--wiki-navigation-selected-border-color));
position: absolute;
left: 100%;
bottom: calc(0px - var(--navigation-border-bottom-width));
}
.vector-menu-tabs .mw-list-item + .mw-list-item,
.vector-menu-tabs .placeholder + .mw-list-item,
.vector-menu-dropdown {
margin-left: calc(min(0px, var(--wiki-navigation-tab-spacing)));
}
.vector-menu-tabs .mw-list-item a,
.vector-menu-tabs .mw-list-item a:visited,
#mw-head .vector-menu-dropdown .vector-menu-heading { /* "#mw-head " is needed here to correctly overwriting mw default css */
/* inner box of normal tabs: tab style */
float: none;
height: auto;
margin: 0;
padding: var(--wiki-navigation-tab-padding-top, 1.25em) var(--wiki-navigation-tab-padding-x, 0.75em) var(--wiki-navigation-tab-padding-bottom, 4px);
border: var(--wiki-navigation-border-width, 1px) var(--wiki-navigation-border-style, solid) var(--wiki-navigation-border-color);
border-bottom-width: calc(min(var(--wiki-navigation-bottom-spacing, 0px)*999, var(--wiki-navigation-border-width, 1px)));
border-radius: var(--wiki-navigation-border-radius) var(--wiki-navigation-border-radius) 0 0;
border-image: var(--wiki-navigation-border-image);
color: var(--wiki-navigation-text-color);
background-image: var(--wiki-navigation-background-image, none);
background-color: color-mix(in srgb, var(--wiki-navigation-background-color) var(--wiki-navigation-background-opacity), transparent);
background-size: var(--wiki-navigation-background-size, auto);
background-repeat: var(--wiki-navigation-background-repeat, repeat);
background-position: var(--wiki-navigation-background-position, center);
font-size: var(--wiki-navigation-font-size, 0.8125em);
font-weight: var(--wiki-navigation-font-weight, normal);
text-transform: var(--wiki-navigation-text-transform, none);
backdrop-filter: var(--wiki-navigation-backdrop-filter, var(--wiki-navigation-selected-backdrop-filter, none));
}
.vector-menu-tabs .mw-list-item a:hover,
#mw-head .vector-menu-dropdown:hover .vector-menu-heading {
border-color: var(--wiki-navigation-border-color--hover, var(--wiki-navigation-border-color));
color: var(--wiki-navigation-text-color--hover);
border-image: var(--wiki-navigation-border-image--hover);
background-image: var(--wiki-navigation-background-image--hover, var(--wiki-navigation-background-image, none));
background-color: color-mix(in srgb, var(--wiki-navigation-background-color--hover, var(--wiki-navigation-background-color)) var(--wiki-navigation-background-opacity--hover, var(--wiki-navigation-background-opacity)), transparent);
background-size: var(--wiki-navigation-background-size--hover, var(--wiki-navigation-background-size, auto));
background-repeat: var(--wiki-navigation-background-repeat--hover, var(--wiki-navigation-background-repeat, repeat));
background-position: var(--wiki-navigation-background-position--hover, var(--wiki-navigation-background-position, center));
transform: var(--wiki-navigation-transform--hover, none);
}
.vector-menu-tabs .mw-list-item.selected {
background: none;
border-bottom-color: transparent;
}
.vector-menu-tabs .mw-list-item.selected a {
/* inner box of selected tab: tab style */
background-image: var(--wiki-navigation-selected-background-image, none);
background-color: color-mix(in srgb, var(--wiki-navigation-selected-background-color) var(--wiki-navigation-selected-background-opacity), transparent);
background-size: var(--wiki-navigation-selected-background-size, auto);
background-repeat: var(--wiki-navigation-selected-background-repeat, repeat);
background-position: var(--wiki-navigation-selected-background-position, center);
border: var(--wiki-navigation-selected-border-width, 1px) var(--wiki-navigation-selected-border-style, solid) var(--wiki-navigation-selected-border-color);
border-bottom-width: calc(min(var(--wiki-navigation-bottom-spacing, 0px)*999, var(--wiki-navigation-selected-border-width, 1px)));
border-image: var(--wiki-navigation-selected-border-image);
color: var(--wiki-navigation-selected-text-color);
font-weight: var(--wiki-navigation-selected-font-weight, var(--wiki-navigation-font-weight, normal));
backdrop-filter: var(--wiki-navigation-selected-backdrop-filter, none);
}
.vector-menu-tabs .mw-list-item.selected::before {
content: '';
display: block;
width: 100%;
box-sizing: border-box;
height: var(--navigation-border-bottom-width);
border: var(--wiki-navigation-selected-border-width, var(--wiki-content-border-width, 1px)) var(--wiki-navigation-border-bottom-style, var(--wiki-navigation-selected-border-style, solid)) var(--wiki-navigation-border-bottom-color, var(--wiki-navigation-selected-border-color));
border-top-width: 0;
border-bottom-width: 0;
position: absolute;
bottom: calc(0px - var(--navigation-border-bottom-width));
background: var(--wiki-navigation-selected-border-bottom-background, transparent);
background-clip: padding-box;
}
/* watch/unwatch star */
.vector-menu-tabs #ca-watch.icon a,
.vector-menu-tabs #ca-unwatch.icon a {
width: var(--wiki-navigation-icon-size, 1em);
height: 100%;
box-sizing: content-box;
padding: var(--wiki-navigation-tab-padding-top, 1.25em) var(--wiki-navigation-tab-padding-x--icon, var(--wiki-navigation-tab-padding-x, 0.75em)) var(--wiki-navigation-tab-padding-bottom, 4px) var(--wiki-navigation-tab-padding-x--icon, var(--wiki-navigation-tab-padding-x, 0.75em));
color: transparent; /* for watch/unwatch, the text of <a> will be plain 'watch'/'unwatch' without <span> after clicking. */
display: flex;
align-items: center;
text-indent: 999px;
}
.vector-menu-tabs #ca-watch.icon a::before,
.vector-menu-tabs #ca-unwatch.icon a::before {
content: "";
display: block;
position: unset;
background-image: none !important;
width: var(--wiki-navigation-icon-size, 1em);
height: var(--wiki-navigation-icon-size, 1em);
flex: 0 0 auto;
--mask: var(--icon) no-repeat;
-webkit-mask: var(--mask);
mask: var(--mask);
-webkit-mask-size: 100% 100%;
mask-size: 100% 100%;
-webkit-mask-position: center center;
mask-position: center center;
background-color: var(--wiki-navigation-text-color);
}
.vector-menu-tabs #ca-watch.icon a:hover::before,
.vector-menu-tabs #ca-unwatch.icon a:hover::before {
background-color: var(--wiki-navigation-text-color--hover);
}
.vector-menu-tabs #ca-unwatch.icon .loading::before,
.vector-menu-tabs #ca-watch.icon .loading::before{
transform-origin: 50% 56.25%;
}
.vector-menu-tabs #ca-watch.icon {
/* line star */
--icon: var(--icon-star-empty);
}
.vector-menu-tabs #ca-unwatch.icon {
/* solid star */
--icon: var(--icon-star-filled);
}
/*** dropdown menu ***/
.vector-menu-dropdown .vector-menu-heading { /* "More" */
/* tab label */
position: relative;
display: flex;
align-items: center;
gap: 0.25em;
}
.vector-menu-dropdown .vector-menu-heading::after {
/* arrow icon */
content: "";
display: block;
width: 1em;
height: 1em;
margin-top: 1px; /* tweak offset */
--mask: var(--icon-chevron-down) no-repeat;
-webkit-mask: var(--mask);
mask: var(--mask);
-webkit-mask-size: 100% 100%;
mask-size: 100% 100%;
-webkit-mask-position: center center;
mask-position: center center;
background: unset;
background-color: var(--wiki-navigation-text-color);
filter: none;
}
.vector-menu-dropdown:hover .vector-menu-heading::after {
/* .vector-menu-heading is covered by .vector-menu-checkbox, therefore we can't use .vector-menu-heading:hover::after */
background-color: var(--wiki-navigation-text-color--hover);
}
.vector-menu-dropdown .mw-list-item a:not(.vector-icon) {
font-size: var(--wiki-navigation-dropdown-font-size, 0.8125em);
}
.vector-menu-dropdown .vector-menu-content {
/* dropdown list body */
border: none;
background: none;
left: 0; /* reset */
margin: 0; /* reset */
top: calc(100% - var(--wiki-navigation-bottom-spacing, 0px));
overflow: unset;
}
.vector-menu-dropdown .vector-menu-content ul {
border: var(--wiki-navigation-dropdown-border-width) solid var(--wiki-navigation-dropdown-border-color);
border-radius: 0 0 var(--wiki-navigation-dropdown-border-radius) var(--wiki-navigation-dropdown-border-radius);
border-image: var(--wiki-navigation-dropdown-border-image);
background: color-mix(in srgb, var(--wiki-navigation-dropdown-background-color, var(--wiki-content-background-color)) var(--wiki-navigation-dropdown-background-opacity, var(--wiki-content-background-opacity, 100%)), transparent);
box-shadow: var(--wiki-navigation-dropdown-box-shadow, var(--wiki-navigation-dropdown-shadow, none)); /* --wiki-navigation-dropdown-shadow is deprecated name */
backdrop-filter: var(--wiki-navigation-dropdown-backdrop-filter);
padding: var(--wiki-navigation-dropdown-padding, 0);
margin-top: var(--wiki-navigation-dropdown-offset, 0);
}
.vector-menu-dropdown .vector-menu-content li:hover {
background: var(--wiki-navigation-dropdown-item-background--hover, none);
}
.vector-menu-dropdown .vector-menu-content li a {
display: block;
padding: var(--wiki-navigation-dropdown-item-padding, 0);
}
.vector-menu-dropdown .vector-menu-content li a,
.vector-menu-dropdown .vector-menu-content li a:visited {
color: var(--wiki-navigation-dropdown-text-color, var(--wiki-navigation-text-color));
}
.vector-menu-dropdown .vector-menu-content li a:hover {
color: var(--wiki-navigation-dropdown-text-color--hover, var(--wiki-navigation-text-color--hover, var(--wiki-content-link-color--hover))); /* fallback for backwards compatibility */
}
/*** search form ***/
#p-search {
margin: 0;
padding: 0 calc(max(0px, var(--wiki-navigation-right-spacing, 0px))) calc(var(--wiki-navigation-search-bottom-spacing, 3px) + var(--navigation-border-bottom-width)) calc(max(0px, 3px - max(0px, var(--wiki-navigation-tab-spacing, -1px))));
z-index: 2;
position: relative;
font-size: var(--wiki-navigation-search-font-size, var(--wiki-navigation-font-size, 0.8125em));
}
.vector-search-box form {
margin: unset;
}
#p-search .searchButton {
background-color: transparent;
font-size: unset;
}
/*new search form */
.cdx-search-input--has-end-button .cdx-search-input__input-wrapper{
margin: 0;
}
.cdx-menu-item--enabled.cdx-menu-item--highlighted {
background-color: var(--wiki-navigation-search-highlight-background-color);
}
#p-search input{
line-height: 1.25; /* "normal" behaves inconsistently in different browsers */
}
#p-search input{
height: unset;
min-height: var(--wiki-navigation-search-height, 2em);
}
#p-search button{
height: unset;
min-height: var(--wiki-navigation-search-height, 2em);
min-width: var(--wiki-navigation-search-height, 2em);
top: 0;
bottom: 0;
right: 2px;
background-color: color-mix(in srgb, var(--wiki-navigation-search-button-color, currentColor) var(--wiki-navigation-search-button-color-opacity, 80%), transparent);
opacity: 100%;
}
#p-search button:hover,
#p-search button:focus{
background-color: color-mix(in srgb, var(--wiki-navigation-search-button-color--hover, var(--wiki-navigation-search-button-color, currentColor)) var(--wiki-navigation-search-button-color-opacity--hover, 95%), transparent);
opacity: 100%;
}
/* top border of the content box */
#p-search::before {
content: "";
display: block;
width: calc(100% - calc(max(var(--wiki-content-border-top-radius, var(--wiki-content-border-radius, 0px)) * (1 - var(--wiki-is-navigation-inside-content, 0)), var(--navigation-border-bottom-width))));
height: 0;
border-bottom: var(--navigation-border-bottom-width) var(--wiki-navigation-border-bottom-style, var(--wiki-navigation-selected-border-style, solid)) var(--wiki-navigation-border-bottom-color, var(--wiki-navigation-selected-border-color));
position: absolute;
bottom: 0;
left: 0;
}
/* top right border-radius of content area */
#p-search::after {
content: "";
display: block;
width: calc(max(var(--wiki-content-border-top-radius, var(--wiki-content-border-radius, 0px)) * (1 - var(--wiki-is-navigation-inside-content, 0)), var(--navigation-border-bottom-width)));
height: calc(max(var(--wiki-content-border-top-radius, var(--wiki-content-border-radius, 0px)) * (1 - var(--wiki-is-navigation-inside-content, 0)), var(--navigation-border-bottom-width)));
box-sizing: border-box;
border-width: var(--navigation-border-bottom-width) var(--navigation-border-bottom-width) 0 0;
border-style: var(--wiki-navigation-border-bottom-style, var(--wiki-navigation-selected-border-style, solid));
border-color: var(--wiki-navigation-border-bottom-color, var(--wiki-navigation-selected-border-color));
border-radius: 0 calc(var(--wiki-content-border-top-radius, var(--wiki-content-border-radius, 0px)) * (1 - var(--wiki-is-navigation-inside-content, 0))) 0 0;
position: absolute;
top: calc(100% - var(--navigation-border-bottom-width));
right: 0;
}
/******************
* End vector tabs *
*******************/
/********
* Links *
*********/
a,
.mw-parser-output a.external,
.mw-parser-output a.extiw {
color: var(--wiki-content-link-color);
}
a:visited,
.mw-parser-output a.extiw:visited,
.mw-parser-output a.external:visited {
color: var(--wiki-content-link-color--visited);
}
a:not(.mw-selflink):hover,
a:visited:hover,
.mw-parser-output a.extiw:hover,
.mw-parser-output a.extiw:visited:hover,
.mw-parser-output a.external:hover,
.mw-parser-output a.external:visited:hover {
color: var(--wiki-content-link-color--hover);
}
a.new,
a.new:visited,
a.new:hover,
.mw-usertoollinks-contribs-no-edits {
color: var(--wiki-content-redlink-color);
}
a:not(.mw-selflink):active,
a:visited:active,
.mw-parser-output a.extiw:active,
.mw-parser-output a.extiw:visited:active,
.mw-parser-output a.external:active,
.mw-parser-output a.external:visited:active {
color: var(--wiki-warning-color);
}
/* link decorations */
/* move external marker to an after so we can filter it to link color */
.mw-parser-output a.external,
.sitenotice a.external {
background: none;
padding-right: 0;
}
.mw-parser-output a.external::after,
.sitenotice a.external::after,
a.extiw[title="wgg:globalprefs"]::after {
display: inline-block;
width: 1em;
height: 1em;
margin-left: 0px;
content: '';
vertical-align: text-top;
--mask: var(--icon) no-repeat;
--mask-size: 0.857em;
--mask-position: center right;
-webkit-mask: var(--mask);
mask: var(--mask);
-webkit-mask-size: var(--mask-size);
mask-size: var(--mask-size);
-webkit-mask-position: var(--mask-position);
mask-position: var(--mask-position);
background-color: currentColor;
}
.mw-parser-output a.external::after,
.sitenotice a.external::after {
--icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2212%22 height=%2212%22 viewBox=%220 0 12 12%22%3E %3Cpath d=%22M6 1h5v5L8.86 3.85 4.7 8 4 7.3l4.15-4.16L6 1ZM2 3h2v1H2v6h6V8h1v2a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1Z%22/%3E %3C/svg%3E");
}
a.extiw[title="wgg:globalprefs"]::after {
--icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20aria-hidden%3D%22true%22%3E%3C!----%3E%3Cg%3E%3Cg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20transform%3D%22translate(10%2010)%22%3E%3Cpath%20id%3D%22cdx-icon-settings-a%22%20d%3D%22M1.5-10h-3l-1%206.5h5m0%207h-5l1%206.5h3%22%3E%3C%2Fpath%3E%3Cuse%20xlink%3Ahref%3D%22%23cdx-icon-settings-a%22%20transform%3D%22rotate(45)%22%3E%3C%2Fuse%3E%3Cuse%20xlink%3Ahref%3D%22%23cdx-icon-settings-a%22%20transform%3D%22rotate(90)%22%3E%3C%2Fuse%3E%3Cuse%20xlink%3Ahref%3D%22%23cdx-icon-settings-a%22%20transform%3D%22rotate(135)%22%3E%3C%2Fuse%3E%3C%2Fg%3E%3Cpath%20d%3D%22M10%202.5a7.5%207.5%200%20000%2015%207.5%207.5%200%20000-15v4a3.5%203.5%200%20010%207%203.5%203.5%200%20010-7%22%3E%3C%2Fpath%3E%3C%2Fg%3E%3C%2Fsvg%3E");
}
.plainlinks a.external::after,
.plainlinks a.extiw[title="wgg:globalprefs"]::after {
display: none;
}
/*
Using a background instead of an ::after prevents the icon from wrapping onto its own line,
but prevents it from being recolored. Use this only for icons that should not be recolored, otherwise
use the ::after method used for external links above
*/
a.extiw[title^="wikipedia:"],
a.extiw[title^="wp:"],
a.extiw[title^="mw:"],
a.extiw[title^="support:"] {
padding-right: 1em;
background-position: center right;
background-repeat: no-repeat;
background-size: 0.857em;
}
a.extiw[title^="wikipedia:"],
a.extiw[title^="wp:"] {
background-image: url(https://commons.wiki.gg/images/2/28/Wikipedia.svg?202406)
}
a.extiw[title^="mw:"] {
background-image: url(https://commons.wiki.gg/images/9/9b/MediaWiki.svg?202406)
}
a.extiw[title^="support:"] {
background-image: url(https://commons.wiki.gg/images/9/9b/Wiki.gg_icon-pink.svg)
}
.plainlinks a.extiw {
background-image:none;
}
/************
* End links *
*************/
/***************
* Left Sidebar *
****************/
#mw-panel {
width: var(--wiki-sidebar-width, 10em);
box-sizing: border-box;
position: relative;
z-index: 1; /* above #footer */
top: calc(-1 * var(--wiki-is-navigation-inside-content, 0) * (var(--wiki-navigation-height) + var(--wiki-content-border-width,1px)) + var(--wiki-sidebar-offset, 0px));
margin-top: calc((1 - var(--wiki-is-top-logo, 0)) * (var(--wiki-logo-file-height, 160) / var(--wiki-logo-file-width, 160) * var(--wiki-sidebar-width, 10em) + var(--wiki-logo-margin, 15px))); /* if is-top-logo, logo-file ratio * sidebar-width + logo-margin, else 0 */
padding: var(--wiki-sidebar-box-padding, 0);
background: var(--wiki-sidebar-box-background, none);
border: var(--wiki-sidebar-box-border, 0);
border-radius: var(--wiki-sidebar-box-border-radius, 0);
border-image: var(--wiki-sidebar-box-border-image, none);
}
#mw-panel .vector-menu-portal {
background-color: color-mix(in srgb, var(--wiki-sidebar-background-color) var(--wiki-sidebar-background-opacity), transparent);
background-image: var(--wiki-sidebar-background-image, none);
background-size: var(--wiki-sidebar-background-size, auto);
background-repeat: var(--wiki-sidebar-background-repeat, repeat);
background-position: var(--wiki-sidebar-background-position, center);
border: var(--wiki-sidebar-border-width, 1px) var(--wiki-sidebar-border-style, solid) var(--wiki-sidebar-border-color);
border-image: var(--wiki-sidebar-border-image, none);
margin: 0 var(--wiki-sidebar-margin, 0.5em);
padding: var(--wiki-sidebar-padding, 0);
box-shadow: var(--wiki-sidebar-box-shadow, none);
filter: var(--wiki-sidebar-filter, none);
backdrop-filter: var(--wiki-sidebar-backdrop-filter, none);
overflow: hidden; /* to prevent overflow when combining border-radius with heading background */
}
#mw-panel #p-ext-discordwidget{
backdrop-filter: none;
}
@supports not (color:color-mix(in srgb, #000, transparent)) {
#mw-panel .vector-menu-portal {
background-color: var(--wiki-sidebar-background-color);
}
}
#mw-panel .vector-menu-portal + .vector-menu-portal {
border-top-width: 0;
}
#mw-panel .vector-menu-portal:last-child {
margin-bottom: 0;
}
/* Sidebar spacing and border-radius section */
#mw-panel .vector-menu-portal:not(:last-child) {
margin-bottom: var(--wiki-sidebar-portal-spacing);
}
#mw-panel #p-logo + .vector-menu-portal,
#mw-panel #p-ext-discordwidget + .vector-menu-portal {
/*
The way this works is that if the sidebar does not have any spacing, only the top and bottom corners
of the top and bottom portals respectively should be rounded, instead of all corners of every portal.
min and calc are combined here to basically create an `if x > 0 then y else z` function.
The lower of (sidebar-border-radius) and (spacing * 999) are compared and the smaller value is taken (999 is simply an arbitrary large number).
If portal spacing is zero, multiplying it gets 0 and will be the smaller value. If it's non-zero, it will be large and sidebar-border-radius will be the smaller value.
This is only applied to the "inner" corners because we'd want the "outer" corners rounded in either scenario.
*/
border-radius: var(--wiki-sidebar-border-radius) var(--wiki-sidebar-border-radius) calc(min(var(--wiki-sidebar-border-radius), var(--wiki-sidebar-portal-spacing) * 999)) calc(min(var(--wiki-sidebar-border-radius), var(--wiki-sidebar-portal-spacing) * 999));
}
#mw-panel .vector-menu-portal:last-child {
/* see rule above for explanation */
border-radius: calc(min(var(--wiki-sidebar-border-radius), var(--wiki-sidebar-portal-spacing) * 999)) calc(min(var(--wiki-sidebar-border-radius), var(--wiki-sidebar-portal-spacing) * 999)) var(--wiki-sidebar-border-radius) var(--wiki-sidebar-border-radius);
}
#mw-panel .vector-menu-portal {
/* see above rules for explanation */
border-radius: calc(min(var(--wiki-sidebar-border-radius), var(--wiki-sidebar-portal-spacing) * 999));
}
#mw-panel .vector-menu-portal + .vector-menu-portal {
/* This keeps the border from doubling up if there is no spacing between them,
The portals other than the first only have a top border if there is spacing */
border-top-width: min(var(--wiki-sidebar-border-width, 1px), var(--wiki-sidebar-portal-spacing, 0px)); /* the 1px and 0px fallbacks are for backwards compatibility with older versions of the loadout */
}
#mw-panel #p-ext-discordwidget + .vector-menu-portal {
border-top-width: var(--wiki-sidebar-border-width, 1px);
}
/* end sidebar spacing and border-radius */
.vector-menu-portal .vector-menu-heading {
padding: var(--wiki-sidebar-heading-padding, 0.5rem 0.25rem 0.5rem 0.5rem);
margin: var(--wiki-sidebar-heading-margin, 0 0 var(--wiki-sidebar-heading-margin-bottom, -0.5rem) 0); /* --wiki-sidebar-heading-margin-bottom is deprecated */
background: var(--wiki-sidebar-heading-background, none);
border-image: var(--wiki-sidebar-heading-border-image, none);
color: var(--wiki-sidebar-heading-color);
font-family: var(--wiki-sidebar-heading-font-family);
font-size: var(--wiki-sidebar-heading-font-size, 0.75em);
font-weight: var(--wiki-sidebar-heading-font-weight, normal);
font-style: var(--wiki-sidebar-heading-font-style, normal);
text-transform: var(--wiki-sidebar-heading-text-transform, none);
line-height: var(--wiki-sidebar-heading-line-height, normal);
text-shadow: var(--wiki-sidebar-heading-text-shadow, none)
}
.vector-menu-portal .vector-menu-content {
margin: var(--wiki-sidebar-list-margin, 0);
padding: var(--wiki-sidebar-list-padding, 0.25rem);
background: var(--wiki-sidebar-list-background, none);
border-image: var(--wiki-sidebar-list-border-image, none);
}
.vector-menu-portal .vector-menu-content ul {
padding: 0;
display: flex;
flex-direction: column;
gap: var(--wiki-sidebar-list-item-spacing, 0);
}
.vector-menu-portal .vector-menu-content li {
font-size: var(--wiki-sidebar-font-size, 0.75em);
line-height: var(--wiki-sidebar-line-height, 1.125em);
padding: 0;
background: var(--wiki-sidebar-list-item-background, none);
border-image: var(--wiki-sidebar-list-item-border-image, none);
}
.vector-menu-portal .vector-menu-content li:hover {
background: var(--wiki-sidebar-list-item-background--hover, var(--wiki-sidebar-list-item-background, none));
border-image: var(--wiki-sidebar-list-item-border-image--hover, var(--wiki-sidebar-list-item-border-image, none));
}
.vector-menu-portal .vector-menu-content li a {
display: block;
padding: var(--wiki-sidebar-list-item-padding, 0.25em 0.25rem);
}
.vector-menu-portal .vector-menu-content li a.feedlink{ /* Atom */
background: none;
}
.vector-menu-portal .vector-menu-content .mw-list-item a,
.vector-menu-portal .vector-menu-content .mw-list-item a:visited,
.vector-menu-portal .vector-menu-content li a,
.vector-menu-portal .vector-menu-content li a:visited {
color: var(--wiki-sidebar-link-color);
}
.vector-menu-portal .vector-menu-content .mw-list-item a:hover,
.vector-menu-portal .vector-menu-content .mw-list-item a:visited:hover {
color: var(--wiki-sidebar-link-color--hover, var(--wiki-content-link-color--hover)); /* fallback for backwards compatibility */
}
#t-newpage {
--sidebar-icon: url('data:image/svg+xml;charset=UTF-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 384 512%22%3E%3C!--%21Font Awesome Free 6.5.2 by %40fontawesome - https%3A%2F%2Ffontawesome.com License - https%3A%2F%2Ffontawesome.com%2Flicense%2Ffree Copyright 2024 Fonticons%2C Inc.--%3E%3Cpath d%3D%22M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128z%22%2F%3E%3C%2Fsvg%3E');
order: -1;
}
#t-upload {
--sidebar-icon: url('data:image/svg+xml;charset=UTF-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 512 512%22%3E%3C!--%21Font Awesome Free 6.5.2 by %40fontawesome - https%3A%2F%2Ffontawesome.com License - https%3A%2F%2Ffontawesome.com%2Flicense%2Ffree Copyright 2024 Fonticons%2C Inc.--%3E%3Cpath d%3D%22M288 109.3V352c0 17.7-14.3 32-32 32s-32-14.3-32-32V109.3l-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0l128 128c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L288 109.3zM64 352H192c0 35.3 28.7 64 64 64s64-28.7 64-64H448c35.3 0 64 28.7 64 64v32c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V416c0-35.3 28.7-64 64-64zM432 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z%22%2F%3E%3C%2Fsvg%3E');
order: -1;
}
#t-print {
--sidebar-icon: url('data:image/svg+xml;charset=UTF-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 512 512%22%3E%3C!--%21Font Awesome Free 6.5.2 by %40fontawesome - https%3A%2F%2Ffontawesome.com License - https%3A%2F%2Ffontawesome.com%2Flicense%2Ffree Copyright 2024 Fonticons%2C Inc.--%3E%3Cpath d%3D%22M128 0C92.7 0 64 28.7 64 64v96h64V64H354.7L384 93.3V160h64V93.3c0-17-6.7-33.3-18.7-45.3L400 18.7C388 6.7 371.7 0 354.7 0H128zM384 352v32 64H128V384 368 352H384zm64 32h32c17.7 0 32-14.3 32-32V256c0-35.3-28.7-64-64-64H64c-35.3 0-64 28.7-64 64v96c0 17.7 14.3 32 32 32H64v64c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V384zM432 248a24 24 0 1 1 0 48 24 24 0 1 1 0-48z%22%2F%3E%3C%2Fsvg%3E');
order: -1;
}
#t-whatlinkshere {
--sidebar-icon: url('data:image/svg+xml;charset=UTF-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 640 512%22%3E%3C!--%21Font Awesome Free 6.5.2 by %40fontawesome - https%3A%2F%2Ffontawesome.com License - https%3A%2F%2Ffontawesome.com%2Flicense%2Ffree Copyright 2024 Fonticons%2C Inc.--%3E%3Cpath d%3D%22M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z%22%2F%3E%3C%2Fsvg%3E');
order: -1;
}
#t-specialpages {
--sidebar-icon: url('data:image/svg+xml;charset=UTF-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 576 512%22%3E%3C!--%21Font Awesome Free 6.5.2 by %40fontawesome - https%3A%2F%2Ffontawesome.com License - https%3A%2F%2Ffontawesome.com%2Flicense%2Ffree Copyright 2024 Fonticons%2C Inc.--%3E%3Cpath d%3D%22M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z%22%2F%3E%3C%2Fsvg%3E');
order: -1;
}
#t-cargopagevalueslink {
--sidebar-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' version='1.1' viewBox='0 0 126.971 136.024'%3E%3Cpath d='m105.999 0-84 .049L0 8.957v127.065h126.97V8.957Z' fill='none' display='inline' opacity='1' paint-order='normal'/%3E%3Cpath d='m9.735 8.774 12.265-5h84l12.25 5H9.75' fill='%23000' fill-opacity='1' display='inline'/%3E%3Cpath d='M3.5 41.024H28v63.5H3.5zm95.5 0h24.5v63.5H99zm-95.5 67.5H123v24H3.5zm0-95.5H123v24H3.5zm27.985 28V59.67l13.61 13.61 17.323 17.324 1.788 1.787 12.131 12.132h19.147v-16.21l-13.6-13.6-1.788-1.787-17.325-17.324-14.578-14.579H31.485zm45.865 0-12.2 12.2 17.324 17.324 13.01-13.01V41.024H77.35zM42.716 75.658l-11.23 11.231v17.634h17.013l11.541-11.54-17.324-17.325z' fill='%23000' fill-opacity='1' fill-rule='nonzero' display='inline' opacity='1' paint-order='normal'/%3E%3C/svg%3E");
order: -1;
}
#feedlinks{
--sidebar-icon: url("data:image/svg+xml,%3C%3Fxml version='1.0' %3F%3E%3Csvg baseProfile='tiny' height='24px' id='Layer_1' version='1.2' viewBox='0 0 24 24' width='24px' xml:space='preserve' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cpath d='M6.002,15.999C4.895,15.999,3.998,16.896,4,18c0,1.104,0.896,2.001,2.002,1.999C7.105,20.001,8.002,19.105,8,18 C8.002,16.893,7.105,15.997,6.002,15.999z'/%3E%3Cpath d='M6,4C4.896,4,4,4.896,4,6s0.896,2,2,2c5.514,0,10,4.486,10,10c0,1.104,0.896,2,2,2s2-0.896,2-2C20,10.28,13.72,4,6,4z'/%3E%3Cpath d='M6,10c-1.104,0-2,0.896-2,2s0.896,2,2,2c2.205,0,4,1.794,4,4c0,1.104,0.896,2,2,2s2-0.896,2-2C14,13.589,10.411,10,6,10z'/%3E%3C/svg%3E");
order: -1;
}
#t-specialpages > a::before,
#t-whatlinkshere > a::before,
#t-print > a::before,
#t-newpage > a::before,
#t-upload > a::before,
#t-cargopagevalueslink > a::before,
#feedlinks > a::before {
content: '';
background-image: var(--sidebar-icon);
background-size: contain;
background-repeat: no-repeat;
background-position: center;
display: inline-block;
width: 1.25em;
height: 1.25em;
}
#p-tb .mw-list-item > a::before {
filter: var(--wiki-sidebar-icon-to-link-filter, var(--wiki-icon-to-link-filter));
}
#p-tb .mw-list-item > a {
display: flex;
align-items: center;
gap: 3px;
}
/*******************
* End left sidebar *
********************/
/*******
* Logo *
********/
/* [[File:Site-logo.png]] */
#p-logo {
width: var(--wiki-logo-box-width);
height: var(--wiki-logo-box-height);
position: absolute;
top: calc(-1 * ( (var(--wiki-navigation-height, 3rem) + var(--wiki-logo-box-height) + var(--wiki-logo-margin, 15px) - var(--wiki-is-navigation-inside-content, 0) * (var(--wiki-navigation-height)) + var(--wiki-sidebar-offset, 0px)) * var(--wiki-is-top-logo, 0)
+ (var(--wiki-logo-box-height) + var(--wiki-logo-margin,15px)) * (1 - var(--wiki-is-top-logo, 0)) ));
left: calc((min((100vw - var(--wiki-left-spacing, 0.5em) - var(--wiki-right-spacing, 0px) - 18px), var(--wiki-page-content-max-width, 9999px)) - var(--wiki-logo-box-width)) / 2 * var(--wiki-is-top-logo, 0));
margin: 0;
filter: var(--wiki-logo-filter, none);
}
#p-logo a {
background-size: contain;
position: absolute;
top: var(--wiki-logo-offset-y, 0);
left: var(--wiki-logo-offset-x, 0);
bottom: 0;
right: 0;
width: 100%;
height: 100%;
background-image: var(--wiki-logo-image, url(filepath://Site-logo.png)); /* The canonical logo must be Site-logo.png. This variable is mainly used to provide different logo for different themes. */
}
/***********
* End logo *
************/
/***************
* Content area *
****************/
.content-wrapper {
max-width: var(--wiki-page-content-max-width, none);
margin-left: auto;
margin-right: auto;
}
.mw-body,
.parsoid-body {
color: var(--wiki-content-text-color);
background-color: color-mix(in srgb, var(--wiki-content-background-color) var(--wiki-content-background-opacity), transparent);
margin-left: calc(var(--wiki-sidebar-width, 10em) + var(--wiki-gap-between-sidebar-and-content, 0.5em));
margin-top: unset;
padding: var(--wiki-content-top-spacing, 1.25em) var(--wiki-content-right-spacing, 1.5em) var(--wiki-content-bottom-spacing, 1.5em) var(--wiki-content-left-spacing, 1.5em);
border-top: 0;
border-left: var(--wiki-content-border-width, 1px) solid transparent;
border-right: var(--wiki-content-border-width, 1px) solid transparent;
border-bottom: var(--wiki-content-border-bottom-width, 1px) solid transparent;
border-radius: calc((1 - var(--wiki-is-navigation-inside-content, 0)) * min(var(--wiki-content-border-top-radius, var(--wiki-content-border-radius, 0px)), var(--wiki-navigation-left-spacing, 0px))) calc((1 - var(--wiki-is-navigation-inside-content, 0)) * var(--wiki-content-border-top-radius, var(--wiki-content-border-radius, 0px))) calc(min(var(--wiki-spacing-before-footer, 0px) * 999, var(--wiki-content-border-radius, 0px))) calc(min(var(--wiki-spacing-before-footer, 0px) * 999, var(--wiki-content-border-radius, 0px)));
position: relative;
border-image: var(--wiki-content-border-image, none);
}
@supports not (color:color-mix(in srgb, #000, transparent)) {
.mw-body,
.parsoid-body {
background-color: var(--wiki-content-background-color);
}
}
/* apply backdrop-filter on .mw-body results in the creation of a containing block for absolute and fixed positioned descendants, so we have to move it to here */
.mw-body::before,
.parsoid-body::before{
content: '';
display: block;
backdrop-filter: var(--wiki-content-backdrop-filter, none);
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
z-index: -1;
border-radius: calc((1 - var(--wiki-is-navigation-inside-content, 0)) * min(var(--wiki-content-border-top-radius, var(--wiki-content-border-radius, 0px)), var(--wiki-navigation-left-spacing, 0px))) calc((1 - var(--wiki-is-navigation-inside-content, 0)) * var(--wiki-content-border-top-radius, var(--wiki-content-border-radius, 0px))) calc(min(var(--wiki-spacing-before-footer, 0px) * 999, var(--wiki-content-border-radius, 0px))) calc(min(var(--wiki-spacing-before-footer, 0px) * 999, var(--wiki-content-border-radius, 0px))); /* as .mw-body */
}
.mw-body::after,
.parsoid-body::after {
content: '';
display: block;
box-sizing: border-box;
position: absolute;
left: calc(-1 * var(--wiki-content-border-width, 1px));
right: calc(-1 * var(--wiki-content-border-width, 1px));
top: calc(var(--wiki-content-border-top-radius, var(--wiki-content-border-radius, 0px)) * (1 - var(--wiki-is-navigation-inside-content, 0)));
bottom: calc(-1 * var(--wiki-content-border-bottom-width, 1px));
pointer-events: none;
border-left: var(--wiki-content-border-width, 1px) var(--wiki-content-border-style, solid) var(--wiki-content-border-color);
border-right: var(--wiki-content-border-width, 1px) var(--wiki-content-border-style, solid) var(--wiki-content-border-color);
border-bottom: var(--wiki-content-border-bottom-width, 1px) var(--wiki-content-border-bottom-style, solid) var(--wiki-content-border-bottom-color, var(--wiki-content-border-color));
border-radius: 0 0 calc(min(var(--wiki-spacing-before-footer, 0px) * 999, var(--wiki-content-border-radius, 0px))) calc(min(var(--wiki-spacing-before-footer, 0px) * 999, var(--wiki-content-border-radius, 0px)));
}
#mw-data-after-content {
max-width: calc(var(--wiki-page-content-max-width) - var(--wiki-sidebar-width) - var(--wiki-gap-between-sidebar-and-content));
margin-left: calc(var(--wiki-sidebar-width) + var(--wiki-gap-between-sidebar-and-content) + max(0px, 100% - var(--wiki-page-content-max-width)) / 2);
box-sizing: border-box;
color: var(--wiki-content-text-color);
background-color: color-mix(in srgb, var(--wiki-content-background-color) var(--wiki-content-background-opacity), transparent);
}
#mw-data-after-content .read-more-container {
border: var(--wiki-content-border-width, 1px) var(--wiki-content-border-style, solid) var(--wiki-content-border-color);
border-top-width: 0;
border-bottom: var(--wiki-content-border-bottom-width, 1px) var(--wiki-content-border-bottom-style, solid) var(--wiki-content-border-bottom-color, var(--wiki-content-border-color));
padding: 1em;
margin: 0;
}
#mw-data-after-content .read-more-container:empty {
display: none;
}
@media screen and (min-width: 982px) {
#mw-data-after-content .read-more-container {
padding: 1.25em 1.5em 1.5em 1.5em;
}
}
.mw-footer {
max-width: calc(var(--wiki-page-content-max-width, 9999px) - var(--wiki-sidebar-width, 10em) - var(--wiki-gap-between-sidebar-and-content, 0.5em));
box-sizing: border-box;
background-color: color-mix(in srgb, var(--wiki-footer-background-color, var(--wiki-content-background-color)) var(--wiki-footer-background-opacity, var(--wiki-content-background-opacity)), transparent);
border: var(--wiki-footer-border-width, 1px) var(--wiki-footer-border-style, solid) var(--wiki-footer-border-color, var(--wiki-content-border-color));
border-top-width: calc(min(var(--wiki-spacing-before-footer, 0px) * 999, var(--wiki-footer-border-width, 1px)));
margin-top: var(--wiki-spacing-before-footer, 0px);
border-radius: calc(min(var(--wiki-spacing-before-footer, 0px) * 999, var(--wiki-footer-border-radius, var(--wiki-content-border-radius, 0px)))) calc(min(var(--wiki-spacing-before-footer, 0px) * 999, var(--wiki-footer-border-radius, var(--wiki-content-border-radius, 0px)))) var(--wiki-footer-border-radius, var(--wiki-content-border-radius, 0px)) var(--wiki-footer-border-radius, var(--wiki-content-border-radius, 0px));
margin-left: calc(var(--wiki-sidebar-width, 10em) + var(--wiki-gap-between-sidebar-and-content, 0.5em) + max(0px, 100% - var(--wiki-page-content-max-width, 9999px)) / 2);
color: var(--wiki-footer-text-color);
border-image: var(--wiki-footer-border-image, none);
backdrop-filter: var(--wiki-footer-backdrop-filter, none);
}
@supports not (color:color-mix(in srgb, #000, transparent)) {
.mw-footer {
background-color: var(--wiki-footer-background-color, var(--wiki-content-background-color));
}
}
.mw-footer li {
color: var(--wiki-footer-text-color);
}
.mw-footer a,
.mw-footer a:visited {
color: var(--wiki-footer-link-color);
}
.mw-footer a:hover,
.mw-footer a:visited:hover {
color: var(--wiki-footer-link-color--hover);
}
/* fix */
@media screen and (max-width: 900px) {
#footer-icons, #footer-places {
clear: unset;
}
}
/*******************************
* End content area and footer *
*******************************/
/***********
* Headings *
************/
.mw-body h1 {
border-bottom: var(--wiki-content-firstheading-border-bottom-width, var(--wiki-content-heading-border-bottom-width, 1px)) var(--wiki-content-firstheading-border-style, var(--wiki-content-heading-border-style, solid)) var(--wiki-content-firstheading-border-color, var(--wiki-content-heading-border-color, var(--wiki-content-border-color)));
font-size: var(--wiki-content-firstheading-font-size, 1.8em);
font-family: var(--wiki-content-firstheading-font-family, var(--wiki-content-heading-font-family));
font-weight: var(--wiki-content-firstheading-font-weight, var(--wiki-content-heading-font-weight));
font-style: var(--wiki-content-firstheading-font-style, var(--wiki-content-heading-font-style));
text-transform: var(--wiki-content-firstheading-text-transform, var(--wiki-content-heading-text-transform));
line-height: var(--wiki-content-firstheading-line-height, var(--wiki-content-heading-line-height));
color: var(--wiki-content-firstheading-color, var(--wiki-content-heading-color));
text-shadow: var(--wiki-content-firstheading-text-shadow, var(--wiki-content-heading-text-shadow, none));
}
.mw-body h2 {
border-bottom: var(--wiki-content-heading-border-bottom-width, 1px) var(--wiki-content-heading-border-style, solid) var(--wiki-content-heading-border-color, var(--wiki-content-border-color));
font-size: var(--wiki-content-heading-h2-font-size, 1.5em);
font-family: var(--wiki-content-heading-font-family);
font-weight: var(--wiki-content-heading-font-weight, normal);
font-style: var(--wiki-content-heading-font-style, normal);
text-transform: var(--wiki-content-heading-text-transform, none);
line-height: var(--wiki-content-heading-line-height, normal);
color: var(--wiki-content-heading-color);
text-shadow: var(--wiki-content-heading-text-shadow, none);
}
.mw-body h3,
.mw-body h4,
.mw-body h5,
.mw-body h6{
border-bottom: var(--wiki-content-subheading-border-bottom-width, 0) var(--wiki-content-subheading-border-style, var(--wiki-content-heading-border-style, solid)) var(--wiki-content-subheading-border-color, var(--wiki-content-heading-border-color, var(--wiki-content-border-color)));
font-family: var(--wiki-content-subheading-font-family, var(--wiki-body-font-family));
font-weight: var(--wiki-content-subheading-font-weight, bold);
font-style: var(--wiki-content-subheading-font-style, normal);
text-transform: var(--wiki-content-subheading-text-transform, none);
line-height: var(--wiki-content-subheading-line-height, var(--wiki-content-heading-line-height));
color: var(--wiki-content-subheading-color, var(--wiki-content-heading-color));
text-shadow: var(--wiki-content-subheading-text-shadow, var(--wiki-content-heading-text-shadow, none));
}
.mw-body h3{
font-size: var(--wiki-content-heading-h3-font-size, 1.2em);
}
.mw-body h4{
font-size: var(--wiki-content-heading-h4-font-size, 114%);
}
.mw-body h5{
font-size: var(--wiki-content-heading-h5-font-size, 108%);
}
.mw-body h6{
font-size: var(--wiki-content-heading-h6-font-size, 100%);
}
.mw-editsection-bracket,
.mw-editsection-divider {
color: var(--wiki-content-heading-color);
}
/***************
* End headings *
****************/
/*************
* Wikitables *
**************/
.wikitable {
background: var(--wiki-content-background-color);
border-color: var(--wiki-content-border-color);
color: var(--wiki-content-text-color);
}
.wikitable > tr > th,
.wikitable > * > tr > th {
background: var(--wiki-content-background-color--secondary);
border: 1px solid var(--wiki-content-border-color);
}
.wikitable > tr > td,
.wikitable > * > tr > td {
border: 1px solid var(--wiki-content-border-color);
}
/* Forward = yes bg on Special:Interwiki */
table.mw-interwikitable.body td.mw-interwikitable-local-yes {
background: color-mix(in srgb, var(--wiki-success-color) 25%, transparent);
}
.zebra-table > * > tr:nth-of-type(2n),
.zebra-table > tr:nth-of-type(2n) {
background: color-mix(in srgb, var(--wiki-content-dynamic-color--secondary) 5%, transparent);
}
.client-js .sortable:not(.jquery-tablesorter) > * > tr:first-child > th:not(.unsortable),
.jquery-tablesorter th.headerSort {
background-image: unset;
position: relative;
}
.client-js .sortable:not(.jquery-tablesorter) > * > tr:first-child > th:not(.unsortable)::after,
.jquery-tablesorter th.headerSort::after {
content: "";
display: block;
position: absolute;
top: 0;
right: 0;
width: 21px;
height: 100%;
--mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2221%22 height=%229%22 viewBox=%220 0 21 9%22%3E %3Cpath d=%22m14.5 5-4 4-4-4zm0-1-4-4-4 4z%22 fill=%22%23fff%22/%3E %3C/svg%3E") no-repeat;
-webkit-mask: var(--mask);
mask: var(--mask);
-webkit-mask-size: auto;
mask-size: auto;
-webkit-mask-position: center right;
mask-position: center right;
background-color: var(--wiki-content-link-color);
}
.jquery-tablesorter th.headerSortUp::after {
--mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2221%22 height=%224%22 viewBox=%220 0 21 4%22%3E %3Cpath d=%22m6.5 4 4-4 4 4z%22 fill=%22%23fff%22/%3E %3C/svg%3E") no-repeat;
}
.jquery-tablesorter th.headerSortDown::after {
--mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2221%22 height=%224%22 viewBox=%220 0 21 4%22%3E %3Cpath d=%22m14.5 0-4 4-4-4z%22 fill=%22%23fff%22/%3E %3C/svg%3E") no-repeat;
}
/*****************
* End wikitables *
******************/
/**************
* Preferences *
***************/
.mw-prefs-tabs-wrapper.oo-ui-panelLayout-framed,
.mw-prefs-tabs > .oo-ui-menuLayout-content > .oo-ui-indexLayout-stackLayout > .oo-ui-tabPanelLayout {
border: none;
}
.oo-ui-tabSelectWidget-framed {
background-color: transparent;
border-bottom: 1px solid var(--wiki-accent-color);
}
.oo-ui-tabSelectWidget-framed .oo-ui-tabOptionWidget.oo-ui-widget-enabled,
.oo-ui-tabSelectWidget-framed .oo-ui-tabOptionWidget.oo-ui-widget-enabled:hover {
background-color: color-mix(in srgb, var(--wiki-accent-label-color) 75%, transparent);
color: var(--wiki-accent-color);
}
.oo-ui-tabSelectWidget-framed .oo-ui-tabOptionWidget.oo-ui-widget-enabled:hover {
color: var(--wiki-accent-color--hover);
}
.oo-ui-tabSelectWidget-framed .oo-ui-tabOptionWidget.oo-ui-optionWidget-selected,
.oo-ui-tabSelectWidget-framed .oo-ui-tabOptionWidget.oo-ui-widget-enabled.oo-ui-optionWidget-selected:hover {
background-color: var(--wiki-accent-color);
color: var(--wiki-accent-label-color);
}
.oo-ui-tabSelectWidget-framed .oo-ui-tabOptionWidget.oo-ui-optionWidget-selected .oo-ui-labelElement-label {
border-bottom: none;
}
#preferences .mw-htmlform-submit-buttons {
background-color: var(--wiki-content-background-color--secondary);
border-color: var(--wiki-content-border-color);
}
.oo-ui-dropdownWidget.oo-ui-widget-enabled .oo-ui-dropdownWidget-handle,
.oo-ui-dropdownInputWidget.oo-ui-widget-enabled,
.oo-ui-textInputWidget .oo-ui-inputWidget-input,
.oo-ui-textInputWidget.oo-ui-widget-enabled .oo-ui-inputWidget-input[readonly]:not(.oo-ui-pendingElement-pending) {
background-color: var(--wiki-content-background-color--secondary);
color: var(--wiki-content-text-color);
border-color: var(--wiki-content-border-color);
}
.oo-ui-pendingElement-pending {
background-color: var(--wiki-content-background-color--secondary);
background-image: linear-gradient(135deg, var(--wiki-content-background-color) 25%, transparent 25%, transparent 50%, var(--wiki-content-background-color) 50%, var(--wiki-content-background-color) 75%, transparent 75%, transparent);
}
.oo-ui-dropdownInputWidget.oo-ui-widget-enabled select {
color: var(--wiki-content-text-color);
border-color: var(--wiki-content-border-color)
}
.view-dark .oo-ui-inputWidget-input.oo-ui-indicator-down {
background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2212%22 height=%2212%22 viewBox=%220 0 12 12%22%3E%3Ctitle%3E down %3C/title%3E%3Cg fill=%22%23fff%22%3E%3Cpath d=%22M9.9 2.9 6 6.8 2.1 2.9 1 4l5 5 5-5z%22/%3E%3C/g%3E%3C/svg%3E");
}
.oo-ui-dropdownInputWidget.oo-ui-widget-enabled select:hover {
color: var(--wiki-content-text-mix-color);
border-color: var(--wiki-accent-color);
}
.oo-ui-dropdownInputWidget.oo-ui-widget-enabled select:active {
color: var(--wiki-content-dynamic-color);
border-color: var(--wiki-accent-color)
}
.oo-ui-dropdownInputWidget select option,
.oo-ui-dropdownInputWidget select optgroup {
color: #000;
}
.oo-ui-dropdownWidget.oo-ui-widget-enabled .oo-ui-dropdownWidget-handle:hover,
.oo-ui-dropdownWidget.oo-ui-widget-enabled .oo-ui-dropdownWidget-handle:focus,
.oo-ui-dropdownWidget.oo-ui-widget-enabled .oo-ui-dropdownWidget-handle:active,
.oo-ui-dropdownInputWidget.oo-ui-widget-enabled:hover,
.oo-ui-dropdownInputWidget.oo-ui-widget-enabled:focus,
.oo-ui-dropdownInputWidget.oo-ui-widget-enabled:active,
.oo-ui-textInputWidget.oo-ui-widget-enabled:hover .oo-ui-inputWidget-input,
.oo-ui-textInputWidget.oo-ui-widget-enabled .oo-ui-inputWidget-input:focus,
.oo-ui-textInputWidget.oo-ui-widget-enabled:active .oo-ui-inputWidget-input,
.oo-ui-textInputWidget.oo-ui-widget-enabled:hover .oo-ui-inputWidget-input:focus {
background-color: var(--wiki-content-background-color--secondary);
color: var(--wiki-content-text-color);
border-color: var(--wiki-accent-color);
box-shadow: none;
}
.oo-ui-radioInputWidget [type="radio"] + span {
background-color: var(--wiki-content-dynamic-color--inverted);
}
.oo-ui-radioInputWidget.oo-ui-widget-enabled [type="radio"]:checked + span,
.oo-ui-radioInputWidget.oo-ui-widget-enabled [type="radio"]:hover + span {
border-color: color-mix(in srgb, var(--wiki-accent-color) 90%, transparent);
}
.oo-ui-radioInputWidget.oo-ui-widget-enabled [type="radio"]:checked:hover + span {
border-color: var(--wiki-accent-color);
}
.oo-ui-radioInputWidget.oo-ui-widget-enabled [type="radio"]:active + span,
.oo-ui-radioInputWidget.oo-ui-widget-enabled [type="radio"]:checked:active + span {
background-color: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent);
border-color: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent);
}
.oo-ui-radioInputWidget.oo-ui-widget-enabled [type="radio"]:checked:focus + span::before {
border-color: var(--wiki-content-dynamic-color--inverted);
}
.oo-ui-radioInputWidget.oo-ui-widget-enabled [type="radio"]:checked:active + span {
border-color: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent);
box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--wiki-accent-color) 50%, transparent);
}
.oo-ui-menuOptionWidget.oo-ui-widget-enabled.oo-ui-optionWidget {
color: var(--wiki-content-text-color);
border-color: var(--wiki-content-text-mix-color);
}
.oo-ui-menuOptionWidget.oo-ui-optionWidget.oo-ui-optionWidget-selected,
.oo-ui-menuOptionWidget.oo-ui-optionWidget.oo-ui-optionWidget-highlighted,
.oo-ui-menuOptionWidget.oo-ui-optionWidget.oo-ui-optionWidget-highlighted.oo-ui-optionWidget-selected,
.oo-ui-dropdownWidget.oo-ui-widget-enabled.oo-ui-dropdownWidget-open .oo-ui-dropdownWidget-handle {
background-color: color-mix(in srgb, var(--wiki-accent-color) 15%, transparent);
color: var(--wiki-content-text-color);
}
.oo-ui-menuOptionWidget.oo-ui-optionWidget-selected.oo-ui-menuOptionWidget.oo-ui-optionWidget-highlighted,
.oo-ui-menuOptionWidget.oo-ui-optionWidget-pressed.oo-ui-menuOptionWidget.oo-ui-optionWidget-highlighted {
background-color: color-mix(in srgb, var(--wiki-accent-color) 10%, transparent);
color: var(--wiki-accent-color);
}
.mw-prefs-tabs.mw-prefs-tabs-searching .oo-ui-tabPanelLayout.mw-prefs-search-matched > fieldset > legend {
background: var(--wiki-content-background-color--secondary);
}
.mw-prefs-search-highlight {
background-color: color-mix(in srgb, var(--wiki-accent-color) 7%, transparent) !important;
outline-color: color-mix(in srgb, var(--wiki-accent-color) 7%, transparent) !important;
}
/****************
* End preferences *
*****************/
/***************
* Page history *
****************/
#pagehistory li {
background-color: transparent;
border: none;
}
#pagehistory li.selected {
background-color: var(--wiki-content-background-color--secondary);
border: 1px dashed var(--wiki-content-border-color);
color: var(--wiki-content-text-color);
}
.diff td.diff-addedline {
background-color: var(--wiki-content-background-color);
border-color: var(--wiki-success-color);
border-width: 1px 1px 1px 4px;
}
.diff td.diff-addedline .diffchange {
background-color: var(--wiki-success-color);
color: var(--wiki-success-label-color);
}
.diff td.diff-deletedline {
background-color: var(--wiki-content-background-color);
border-color: var(--wiki-alert-color);
border-width: 1px 1px 1px 4px;
}
.diff td.diff-deletedline .diffchange {
background-color: var(--wiki-alert-color);
color: var(--wiki-alert-label-color)
}
.diff td.diff-context {
background: color-mix(in srgb, var(--wiki-content-text-mix-color-95) 80%, var(--wiki-content-background-color));
border-color: var(--wiki-neutral-color, var(--wiki-content-text-mix-color)); /* fallback for backwards compatibility */
color: var(--wiki-content-text-color);
}
.diff-marker a.mw-diff-movedpara-right {
color: transparent;
}
.diff-marker a.mw-diff-movedpara-right:hover:after {
opacity: .75;
}
.diff-marker a.mw-diff-movedpara-right:after {
color: var(--wiki-content-text-color);
content: "\21a9";
}
.diff-marker a.mw-diff-movedpara-left {
color: transparent;
}
.diff-marker a.mw-diff-movedpara-left:hover:after {
opacity: .75;
}
.diff-marker a.mw-diff-movedpara-left:after {
color: var(--wiki-content-text-color);
content: "\21aa";
}
.mw-plusminus-neg {
color: var(--wiki-alert-color);
}
.mw-plusminus-null {
color: var(--wiki-neutral-color, var(--wiki-content-text-mix-color)); /* fallback for backwards compatibility */
}
.mw-plusminus-pos {
color: var(--wiki-success-color);
}
.updatedmarker {
background-color: color-mix(in srgb, var(--wiki-success-color) 25%, transparent);
color: var(--wiki-content-text-color);
}
li span.deleted,
span.history-deleted {
color: var(--wiki-content-text-mix-color);
}
span.mw-history-suppressed {
/* overrides above, since suppressed is also deleted */
color: var(--wiki-content-text-color);
}
/* inline diff (1.41) */
.mw-diff-inline-header {
border-bottom: 1px solid var(--wiki-content-border-color);
}
.mw-diff-inline-added ins,
.mw-diff-inline-changed ins,
.mw-diff-inline-moved ins,
.mw-diff-table-prefix .mw-diff-inline-legend .mw-diff-inline-legend-ins,
.mw-diff-inline-added.mw-diff-empty-line::after,
.mw-inline-diff-newline::after {
background: color-mix(in srgb, var(--wiki-success-color) 90%, transparent);
color: var(--wiki-success-label-color);
display: inline-block;
}
.mw-diff-inline-added.mw-diff-empty-line::after,
.mw-diff-inline-deleted.mw-diff-empty-line::after,
.mw-inline-diff-newline::after {
padding: 0.4em 0;
}
.mw-diff-inline-deleted del,
.mw-diff-inline-changed del,
.mw-diff-inline-moved del,
.mw-diff-table-prefix .mw-diff-inline-legend .mw-diff-inline-legend-del,
.mw-diff-inline-deleted.mw-diff-empty-line::after {
background: color-mix(in srgb, var(--wiki-alert-color) 90%, transparent);
color: var(--wiki-alert-label-color);
display: inline-block;
}
.mw-diff-movedpara-left::after,
.mw-diff-movedpara-right::after {
color: var(--wiki-content-text-color);
}
.ve-ui-diffElement-hasDescriptions .ve-ui-diffElement-content {
border-right-color: var(--wiki-content-border-color);
}
.ve-ui-diffElement-attributeChange {
color: var(--wiki-content-text-mix-color);
}
.ve-ui-diffElement-attributeChange ins {
background-color: color-mix(in srgb, var(--wiki-success-color) 90%, transparent);
box-shadow: 0 0 0 1px color-mix(in srgb, var(--wiki-success-color) 90%, transparent);
color: var(--wiki-success-label-color);
}
.ve-ui-diffElement-attributeChange del {
background-color: color-mix(in srgb, var(--wiki-alert-color) 90%, transparent);
box-shadow: 0 0 0 1px color-mix(in srgb, var(--wiki-alert-color) 90%, transparent);
color: var(--wiki-alert-label-color);
}
.ve-ui-diffElement-highlight {
outline-color: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent);
}
.ve-ui-changeDescriptionsSelectWidget > .oo-ui-optionWidget-highlighted {
background: color-mix(in srgb, var(--wiki-accent-color) 15%, transparent);
}
/* Edit conflict */
.mw-twocolconflict-split-tour-image-dual-column-view-1 {
filter: var(--wiki-icon-general-filter);
}
.mw-twocolconflict-split-tour-image-blue-dot {
filter: brightness(0) var(--wiki-icon-to-link-filter);
}
.mw-pulsating-dot::before, .mw-pulsating-dot::after {
background-color: var(--wiki-content-link-color);
}
.mw-twocolconflict-split-current-version-header .mw-twocolconflict-revision-label {
background-color: var(--wiki-alert-color);
color: var(--wiki-alert-label-color);
}
.mw-twocolconflict-special-your-version-header .mw-twocolconflict-revision-label,
.mw-twocolconflict-split-your-version-header .mw-twocolconflict-revision-label {
background-color: var(--wiki-success-color);
color: var(--wiki-success-label-color);
}
.mw-twocolconflict-single-column.mw-twocolconflict-split-copy,
.mw-twocolconflict-split-column.mw-twocolconflict-split-copy {
border-color: var(--wiki-neutral-color, var(--wiki-content-text-mix-color)); /* fallback for backwards compatibility */
background-color: var(--wiki-content-text-mix-color-95);
}
.mw-twocolconflict-single-column .mw-twocolconflict-split-collapsed .mw-twocolconflict-split-fade,
.mw-twocolconflict-split-column .mw-twocolconflict-split-collapsed .mw-twocolconflict-split-fade {
background-image: linear-gradient(transparent, var(--wiki-content-text-mix-color-95));
}
.mw-twocolconflict-single-column,
.mw-twocolconflict-split-column {
background-color: var(--wiki-content-background-color);
color: var(--wiki-content-text-color);
}
.mw-twocolconflict-single-column.mw-twocolconflict-split-unselected,
.mw-twocolconflict-split-column.mw-twocolconflict-split-unselected {
color: color-mix(in srgb, var(--wiki-content-text-color) 80%, transparent);
}
.mw-twocolconflict-single-column.mw-twocolconflict-split-unselected.mw-twocolconflict-split-delete,
.mw-twocolconflict-split-column.mw-twocolconflict-split-unselected.mw-twocolconflict-split-delete {
border-color: color-mix(in srgb, var(--wiki-alert-color) 40%, transparent);
}
.mw-twocolconflict-single-column.mw-twocolconflict-split-delete,
.mw-twocolconflict-split-column.mw-twocolconflict-split-delete {
border-color: var(--wiki-alert-color);
}
.mw-twocolconflict-single-column.mw-twocolconflict-split-unselected.mw-twocolconflict-split-add,
.mw-twocolconflict-split-column.mw-twocolconflict-split-unselected.mw-twocolconflict-split-add {
border-color: color-mix(in srgb, var(--wiki-success-color) 40%, transparent);
}
.mw-twocolconflict-single-column.mw-twocolconflict-split-add,
.mw-twocolconflict-split-column.mw-twocolconflict-split-add {
border-color: var(--wiki-success-color);
}
.mw-twocolconflict-single-column.mw-twocolconflict-split-unselected del.mw-twocolconflict-diffchange,
.mw-twocolconflict-split-column.mw-twocolconflict-split-unselected del.mw-twocolconflict-diffchange {
background-color: color-mix(in srgb, var(--wiki-alert-color) 30%, transparent);
}
.mw-twocolconflict-single-column.mw-twocolconflict-split-unselected del.mw-twocolconflict-diffchange,
.mw-twocolconflict-split-column.mw-twocolconflict-split-unselected del.mw-twocolconflict-diffchange,
.mw-twocolconflict-single-column del.mw-twocolconflict-diffchange,
.mw-twocolconflict-split-column del.mw-twocolconflict-diffchange {
background-color: var(--wiki-alert-color);
color: var(--wiki-alert-label-color);
}
.mw-twocolconflict-single-column.mw-twocolconflict-split-unselected ins.mw-twocolconflict-diffchange,
.mw-twocolconflict-split-column.mw-twocolconflict-split-unselected ins.mw-twocolconflict-diffchange,
.mw-twocolconflict-single-column ins.mw-twocolconflict-diffchange,
.mw-twocolconflict-split-column ins.mw-twocolconflict-diffchange {
background-color: var(--wiki-success-color);
color: var(--wiki-success-label-color);
}
.mw-twocolconflict-split-selection > div:nth-child(2) .oo-ui-radioInputWidget.oo-ui-widget-enabled [type="radio"]:checked + span,
.mw-twocolconflict-split-selection > div:nth-child(2) .oo-ui-radioInputWidget.oo-ui-widget-enabled [type="radio"]:active + span,
.mw-twocolconflict-split-selection > div:nth-child(2) .oo-ui-radioInputWidget [type="radio"] + span {
border-color: color-mix(in srgb, var(--wiki-success-color) 80%, transparent);
background: color-mix(in srgb, var(--wiki-success-color) 10%, transparent);
}
.mw-twocolconflict-split-selection > div:nth-child(2) .oo-ui-radioInputWidget.oo-ui-widget-enabled [type="radio"]:active + span,
.mw-twocolconflict-split-selection > div:nth-child(2) .oo-ui-radioInputWidget [type="radio"] + span {
border-color: color-mix(in srgb, var(--wiki-success-color) 90%, transparent);
background: color-mix(in srgb, var(--wiki-success-color) 10%, transparent);
}
.mw-twocolconflict-split-selection > div:nth-child(1) .oo-ui-radioInputWidget.oo-ui-widget-enabled [type="radio"]:checked + span,
.mw-twocolconflict-split-selection > div:nth-child(1) .oo-ui-radioInputWidget.oo-ui-widget-enabled [type="radio"]:active + span,
.mw-twocolconflict-split-selection > div:nth-child(1) .oo-ui-radioInputWidget [type="radio"] + span {
border-color: color-mix(in srgb, var(--wiki-alert-color) 90%, transparent);
background: color-mix(in srgb, var(--wiki-alert-color) 10%, transparent);
}
.mw-twocolconflict-split-editable .mw-twocolconflict-split-editor {
color: var(--wiki-content-text-color);
}
/**/
/*******************
* End page history *
********************/
/********************
* Table of contents *
*********************/
#toc,
.toc,
.toccolours,
.mw-warning {
background: var(--wiki-content-toc-background, var(--wiki-content-background-color--secondary));
border-width: var(--wiki-content-toc-border-width, 1px);
border-style: var(--wiki-content-toc-border-style, solid);
border-color: var(--wiki-content-toc-border-color, var(--wiki-content-border-color));
border-radius: var(--wiki-content-toc-border-radius, 0px);
border-image: var(--wiki-content-toc-border-image, none);
box-shadow: var(--wiki-content-toc-box-shadow, none);
}
#mw-toc-heading {
border: 0;
}
.toctogglelabel {
color: var(--wiki-content-link-color);
}
.tocnumber {
color: var(--wiki-content-text-color);
}
/************************
* End table of contents *
*************************/
/*************
* Thumbnails *
**************/
img.thumbborder {
border: 1px solid var(--wiki-content-border-color);
padding: 5px;
}
div.thumbinner {
background-color: var(--wiki-content-background-color--secondary);
border-color: var(--wiki-content-border-color);
}
li.gallerybox div.thumb {
background-color: var(--wiki-content-background-color--secondary);
border: 1px solid var(--wiki-content-border-color);
}
html .thumbimage {
background-color: unset;
border: 1px solid var(--wiki-content-border-color);
}
.thumb,
.thumb .thumbinner,
.thumb .thumbimage {
max-width: 100%;
box-sizing: border-box;
}
.thumb .thumbimage:not(audio) {
height: auto;
}
body.skin--responsive .mw-parser-output .thumb .thumbinner > .thumbcaption {
width: revert;
}
/* packed-overlay and packed-hover modes for galleries */
ul.mw-gallery-packed-hover li.gallerybox:hover div.gallerytextwrapper,
ul.mw-gallery-packed-overlay li.gallerybox div.gallerytextwrapper,
ul.mw-gallery-packed-hover li.gallerybox.mw-gallery-focused div.gallerytextwrapper {
background: color-mix(in srgb, var(--wiki-content-dynamic-color--inverted) 65%, transparent);
}
/* for non-thumbnail left floaters, increased margin from 0.5em to account for <ul> */
div.floatleft,
table.floatleft {
margin-right: 1.4em;
}
/* Responsive floating thumbnails */
@media screen and (max-width: 720px) {
div.tright,
div.floatright,
div.tleft,
div.floatleft {
float: none;
margin: 0 auto;
width: fit-content;
}
}
/*****************
* End thumbnails *
******************/
/**************
* Wiki editor *
***************/
#wpTextbox0 {
/* need !important here to override inline styling */
background-color: var(--wiki-content-background-color) !important;
}
.wikiEditor-ui {
border: none;
}
.wikiEditor-ui .wikiEditor-ui-top,
.wikiEditor-ui .wikiEditor-ui-view {
border-color: var(--wiki-content-border-color);
}
.wikiEditor-ui-toolbar {
background: var(--wiki-content-background-color--secondary);
}
.wikiEditor-ui-toolbar .group,
.wikiEditor-ui-toolbar .section-secondary .group {
border-color: var(--wiki-content-border-color);
}
.wikiEditor-ui-toolbar .tabs span.tab a,
.wikiEditor-ui-toolbar .tabs span.tab a:visited,
.wikiEditor-ui-toolbar .tabs span.tab a.current,
.wiikiEditor-ui-toolbar .tabs span.tab a.current:visited,
.wikiEditor-ui-toolbar .booklet .index .current {
color: var(--wiki-content-link-color);
}
.wikiEditor-ui-toolbar .group .tool-select .options {
background: var(--wiki-content-background-color--secondary);
border: 1px solid var(--wiki-content-border-color);
}
.wikiEditor-ui-toolbar .group .tool-select .options .option {
color: var(--wiki-content-text-color);
}
.wikiEditor-ui-toolbar .group .tool-select .menu .options .option:hover {
background-color: var(--wiki-content-background-color);
}
.wikiEditor-ui-toolbar .tabs span.tab a::before,
.wikiEditor-ui-toolbar .group .tool-select .label::after {
filter: var(--wiki-icon-general-filter);
}
.wikiEditor-ui-toolbar .group .label,
.wikiEditor-ui-toolbar .group .tool-select .label,
.wikiEditor-ui-toolbar .page-table th,
.wikiEditor-ui-toolbar .page-table td,
.wikiEditor-ui-toolbar .page-characters div span,
.wikiEditor-ui-toolbar .booklet .index div {
color: var(--wiki-content-text-color);
}
.wikiEditor-ui-toolbar .booklet > .index > :hover {
background-color: var(--wiki-content-background-color--secondary);
}
.wikiEditor-ui-toolbar .page-characters div span {
border: 1px solid var(--wiki-content-border-color);
}
.wikiEditor-ui-toolbar .sections .section,
.wikiEditor-ui-toolbar .booklet .pages,
.wikiEditor-ui-toolbar .booklet .index .current,
.wikiEditor-ui-toolbar .page-characters div span:hover {
background-color: color-mix(in srgb, var(--wiki-content-dynamic-color) 5%, transparent);
}
.wikiEditor-ui-toolbar .sections .section {
border-top: 1px solid var(--wiki-content-border-color);
}
.wikiEditor-ui-toolbar .page-characters div span:hover {
border-color: var(--wiki-content-border-color);
}
.wikiEditor-ui-toolbar .page-table td {
border-top: 1px solid var(--wiki-content-border-color);
}
.wikiEditor-ui-tabs div a {
background: #9A647F;
display: inline-block;
}
.wikiEditor-ui-tabs div.current {
border-bottom: 1px solid #3B3352;
}
.wikiEditor-ui-tabs div.current a {
font-weight: bold;
}
.wikiEditor-ui-tabs {
border-left: 1px solid #3B3352;
border-top: 1px solid #3B3352;
}
.wikiEditor-ui-text {
background-color: var(--wiki-content-dynamic-color--inverted);
}
.wikiEditor-preview-contents {
background: transparent;
background-color: rgba(255, 255, 255, 0.2);
border-color: #3B3352;
border-style: solid;
border-width: 0 1px 1px;
}
.wikiEditor-ui-controls {
background: transparent;
}
.wikiEditor-preview-contents,
.wikiEditor-preview-loading {
background-color: transparent;
}
.mw-wikiEditor-InsertLink-TitleInputField .oo-ui-messageWidget,
.mw-widget-titleWidget-menu .mw-widget-titleOptionWidget-description {
color: var(--wiki-content-text-mix-color);
}
.wikiEditor-toolbar-dialog {
max-width: 100%;
box-sizing: border-box;
}
.wikiEditor-toolbar-dialog .ui-dialog-content input[type='text']::placeholder {
color: var(--wiki-content-text-mix-color);
}
.ext-WikiEditor-ResizingDragBar {
background-color: var(--wiki-content-background-color--secondary);
}
.ext-WikiEditor-ResizingDragBar-ns {
border-color: var(--wiki-content-border-color);
}
.ext-WikiEditor-ResizingDragBar span {
background-color: var(--wiki-content-border-color);
}
.ext-WikiEditor-ResizingDragBar:hover span {
background-color: var(--wiki-content-text-mix-color);
}
.ext-WikiEditor-twopanes-TwoPaneLayout .ext-WikiEditor-twopanes-pane1,
.ext-WikiEditor-twopanes-TwoPaneLayout .ext-WikiEditor-twopanes-pane2 {
border-color: var(--wiki-content-border-color);
}
/* creates a warning message about previewing sidebar edits */
.page-MediaWiki_Sidebar .wikiEditor-ui-bottom:has(.ext-WikiEditor-twopanes-TwoPaneLayout)::before {
content:"Warning: Sidebar previews are not accurate. Please save to see your changes!";
background:var(--wiki-alert-color);
display:block;
text-align:center;
color:var(--wiki-alert-label-color);
}
.ext-WikiEditor-realtimepreview-button.oo-ui-toggleWidget-on .oo-ui-labelElement-label {
color: var(--wiki-accent-color);
}
.wikiEditor-ui-toolbar .group,
.wikiEditor-ui-toolbar .section-secondary .group {
border-color: var(--wiki-content-border-color);
}
.ext-WikiEditor-realtimepreview-button:hover {
background-color: color-mix(in srgb, var(--wiki-accent-color) 15%, transparent);
color: var(--wiki-accent-color);
border-color: var(--wiki-accent-color);
box-shadow: inset 0 0 3px var(--wiki-accent-color);
}
.ext-WikiEditor-realtimepreview-ErrorLayout {
background-color: var(--wiki-content-background-color);
}
.ext-WikiEditor-image-realtimepreview-error {
filter: var(--wiki-icon-general-filter);
}
.oo-ui-toggleButtonWidget.oo-ui-widget-enabled.oo-ui-buttonElement-frameless.oo-ui-toggleWidget-on .oo-ui-buttonElement-button {
background-color: var(--wiki-content-background-color--secondary);
}
.ext-WikiEditor-reloadButton.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button,
.ext-WikiEditor-reloadButton.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover {
background-color: var(--wiki-content-background-color);
}
.editOptions {
background-color: var(--wiki-content-background-color--secondary);
color: var(--wiki-content-text-color);
border-color: var(--wiki-content-border-color);
border-image: none;
border-radius: 0 0 5px 5px;
border-style: none solid solid;
border-width: medium 1px 1px;
}
input#wpSummary {
margin-bottom: 1em;
margin-top: 1em;
width: 80%;
}
.view-dark .ace_editor,
.ace_editor {
--ace-keywords: #CDA869;
--ace-regexp: #E9C062;
--ace-constants: #CF6A4C;
--ace-illegal: #F8F8F8;
--ace-deprecated: #D2A8A1;
--ace-support: #9B859D;
--ace-function: #DAD085;
--ace-list: #F9EE98;
--ace-variable: #7587A6;
--ace-string: #8F9D6A;
--ace-illegal-highlight: rgba(86, 45, 86, 0.75);
--ace-step-highlight: #665200;
--ace-multiselect-shadow: #141414;
}
.view-light .ace_editor {
--ace-keywords: #00f;
--ace-regexp: #036a07;
--ace-constants: #c5060b;
--ace-illegal: #f00;
--ace-deprecated: #f00;
--ace-support: #6d79de;
--ace-function: #3c4c72;
--ace-list: #b90690;
--ace-variable: #318495;
--ace-string: #036a07;
--ace-illegal-highlight: rgba(255, 0, 0, 0.1);
--ace-step-highlight: #fcff00;
--ace-multiselect-shadow: #fff;
}
.ace_editor .ace_gutter {
background: color-mix(in srgb, var(--wiki-content-dynamic-color--inverted) 85%, transparent);
}
.ace_gutter-cell {
color: color-mix(in srgb, var(--wiki-content-dynamic-color) 40%, transparent);
}
.ace_editor .ace_print-margin {
width: 1px;
background: color-mix(in srgb, var(--wiki-content-dynamic-color--inverted) 75%, transparent);
}
.ace_editor {
/* this image gradient hack effectively lets the element have 2 layers of background */
background-image: linear-gradient(var(--wiki-content-dynamic-color), var(--wiki-content-dynamic-color));
background-color: color-mix(in srgb, var(--wiki-content-dynamic-color--inverted) 93%, transparent);
color: color-mix(in srgb, var(--wiki-content-dynamic-color) 93%, transparent);
}
.ace_editor .ace_cursor,
.ace-monokai .ace_punctuation,
.ace-monokai .ace_punctuation.ace_tag {
color: var(--wiki-content-text-color);
}
.ace_editor .ace_marker-layer .ace_selection {
background: color-mix(in srgb, var(--wiki-content-dynamic-color) 20%, transparent)
}
.ace_editor.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px var(--ace-multiselect-shadow);
}
.ace_editor .ace_marker-layer .ace_step {
background: var(--ace-step-highlight);
}
.ace_editor .ace_marker-layer .ace_active-line,
.ace_editor .ace_gutter-active-line {
background: color-mix(in srgb, var(--wiki-content-dynamic-color) 3.1%, transparent)
}
.ace-tm .ace_marker-layer .ace_selected-word {
background: color-mix(in srgb, var(--wiki-content-dynamic-color) 5%, transparent);
}
.ace_editor .ace_marker-layer .ace_selection {
background: color-mix(in srgb, var(--wiki-content-dynamic-color) 10%, transparent);
}
.ace_editor .ace_marker-layer .ace_selected-word {
border: 1px solid color-mix(in srgb, var(--wiki-content-dynamic-color) 20%, transparent);
}
.ace_editor .ace_invisible {
color: color-mix(in srgb, var(--wiki-content-dynamic-color) 25%, transparent);
}
.ace_editor .ace_keyword,
.ace_editor .ace_meta {
color: var(--ace-keywords);
}
.ace_editor .ace_constant,
.ace_editor .ace_constant.ace_numeric,
.ace_editor .ace_constant.ace_character,
.ace_editor .ace_constant.ace_character.ace_escape,
.ace_editor .ace_constant.ace_other,
.ace_editor .ace_heading,
.ace_editor .ace_markup.ace_heading,
.ace_editor .ace_support.ace_constant {
color: var(--ace-constants);
}
.ace_editor .ace_invalid.ace_illegal {
color: var(--ace-illegal);
background-color: var(--ace-illegal-highlight);
}
.ace_editor .ace_invalid.ace_deprecated {
text-decoration: underline;
font-style: italic;
color: var(--ace-deprecated);
}
.ace_editor .ace_support,
.ace_editor .ace_support.ace_type {
color: var(--ace-support);
}
.ace_editor .ace_fold {
background-color: color-mix(in srgb, var(--wiki-content-dynamic-color) 10%, transparent);
border-color: color-mix(in srgb, var(--wiki-content-dynamic-color) 10%, transparent);
}
.ace_editor .ace_support.ace_function {
color: var(--ace-function);
}
.ace_editor .ace_list,
.ace_editor .ace_markup.ace_list,
.ace_editor .ace_storage {
color: var(--ace-list);
}
.ace_editor .ace_entity.ace_name.ace_function,
.ace_editor .ace_meta.ace_tag,
.ace_editor .ace_variable {
color: var(--ace-variable);
}
.ace_editor .ace_string {
color: var(--ace-string);
}
.ace_editor .ace_string.ace_regexp {
color: var(--ace-regexp);
}
.ace_editor .ace_comment {
font-style: italic;
color: color-mix(in srgb, var(--wiki-content-dynamic-color) 30%, transparent);
}
.ace_editor .ace_xml-pe {
color: color-mix(in srgb, var(--wiki-content-dynamic-color) 28%, transparent);
}
.ace_editor .ace_indent-guide {
background: none;
box-shadow: 1px 0 0 color-mix(in srgb, var(--wiki-content-dynamic-color) 20%, transparent);
}
.ace_search {
background-color: var(--wiki-content-background-color--secondary);
color: var(--wiki-content-text-color);
border: 1px solid var(--wiki-content-border-color);
}
.ace_search_field {
background-color: var(--wiki-content-background-color--secondary);
border: 1px solid var(--wiki-content-border-color);
color: var(--wiki-content-text-mix-color);
}
.ace_button {
color: var(--wiki-content-text-color);
border: 1px solid var(--wiki-content-border-color);
}
.ace_button:hover {
background-color: var(--wiki-accent-color--hover);
color: var(--wiki-accent-label-color);
}
.ace_button.checked {
background-color: var(--wiki-accent-color);
color: var(--wiki-accent-label-color);
}
.ace_searchbtn {
background-color: var(--wiki-accent-color);
color: var(--wiki-accent-label-color);
border: 1px solid var(--wiki-content-border-color);
}
.ace_searchbtn:hover {
background-color: var(--wiki-accent-color--hover);
color: var(--wiki-accent-label-color);
}
.ace_searchbtn.prev::after,
.ace_searchbtn.next::after {
border-color: var(--wiki-accent-label-color);
}
.ace_searchbtn_close {
filter: var(--wiki-icon-general-filter);
}
.wikiEditor-ui .codeEditor-status {
background-color: var(--wiki-content-background-color--secondary);
border-color: var(--wiki-content-border-color);
}
.mw-editform #wpTextbox1 {
background: color-mix(in srgb, var(--wiki-content-background-color) 50%, transparent);
color: var(--wiki-content-text-color);
}
.view-dark .ext-codemirror-wrapper,
.ext-codemirror-wrapper {
--codemirror-yellow: #ffd700;
--codemirror-light-blue: #adf;
--codemirror-blue: #08f;
--codemirror-green: #290;
--codemirror-red: #f50;
--codemirror-dark-red: #dd1616;
--codemirror-purple: #CD4EF9;
--codemirror-pink: #e0e;
--codemirror-light-gray: #eee;
--codemirror-gray: #84a0a0;
}
.view-light .ext-codemirror-wrapper {
--codemirror-yellow: #9e8500;
--codemirror-light-blue: #008ae7;
--codemirror-blue: #0085f9;
--codemirror-green: #290;
--codemirror-red: #ef4f00;
--codemirror-dark-red: #a11;
--codemirror-purple: #80c;
--codemirror-pink: #ed00ed;
--codemirror-light-gray: #858585;
--codemirror-gray: #6b8a8a;
}
.ext-codemirror-wrapper {
background-color: color-mix(in srgb, var(--wiki-content-background-color) 35%, transparent);
color: var(--wiki-content-text-color)
}
.cm-editor .cm-selectionBackground,
.cm-editor.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground {
background: color-mix(in srgb, var(--wiki-accent-color) 30%, transparent);
}
.cm-mw-keyword {
color: var(--codemirror-purple)
}
.cm-mw-def {
color: var(--codemirror-blue)
}
.cm-mw-variable-2 {
color: var(--codemirror-light-blue)
}
.cm-mw-string {
color: var(--codemirror-red)
}
.cm-mw-atom {
color: var(--codemirror-pink)
}
.cm-mw-number {
color: var(--codemirror-green)
}
.cm-mw-matching {
background-color: var(--codemirror-yellow)
}
.cm-mw-skipformatting {
background-color: var(--codemirror-light-blue)
}
.cm-mw-list {
color: var(--codemirror-blue)
}
.cm-mw-doubleUnderscore,
.cm-mw-hr,
.cm-mw-signature {
background-color: var(--wiki-content-background-color--secondary);
color: var(--codemirror-blue)
}
.cm-mw-indenting {
color: var(--codemirror-blue)
}
.cm-mw-mnemonic {
color: var(--codemirror-green)
}
.cm-mw-comment {
color: var(--codemirror-gray)
}
.cm-mw-apostrophes-bold,
.cm-mw-apostrophes-italic,
.cm-mw-section-header {
color: var(--codemirror-blue)
}
.cm-mw-template,
.cm-mw-template-argument-name,
.cm-mw-template-bracket,
.cm-mw-template-delimiter,
.cm-mw-template-name {
color: var(--codemirror-purple);
}
.cm-mw-templatevariable,
.cm-mw-templatevariable-bracket,
.cm-mw-templatevariable-delimiter,
.cm-mw-templatevariable-name {
color: var(--codemirror-red)
}
.cm-mw-parserfunction-bracket,
.cm-mw-parserfunction-delimiter,
.cm-mw-parserfunction-name {
color: var(--codemirror-dark-red)
}
.cm-mw-exttag-attribute,
.cm-mw-exttag-bracket,
.cm-mw-exttag-name,
.cm-mw-htmltag-attribute,
.cm-mw-htmltag-bracket,
.cm-mw-htmltag-name {
color: var(--codemirror-green)
}
.cm-mw-link,
.cm-mw-link-pagename {
color: var(--wiki-content-link-color)
}
.cm-mw-link-tosection {
color: var(--codemirror-blue)
}
.cm-mw-extlink,
.cm-mw-extlink-bracket,
.cm-mw-extlink-protocol,
.cm-mw-free-extlink,
.cm-mw-free-extlink-protocol,
.cm-mw-link-bracket,
.cm-mw-link-delimiter {
color: var(--wiki-content-link-color)
}
.cm-mw-table-bracket,
.cm-mw-table-definition,
.cm-mw-table-delimiter {
color: var(--codemirror-pink)
}
.cm-mw-matchingbracket {
background-color: var(--wiki-content-background-color--secondary);
box-shadow: inset 0 0 1px 1px var(--wiki-content-link-color);
font-weight: bold;
}
.cm-editor .cm-tooltip-autocomplete ul li[aria-selected] {
background: color-mix(in srgb, var(--wiki-content-link-color) 15%, var(--wiki-content-background-color));
color: var(--wiki-content-link-color);
}
/* VisualEditor: Fix broken toolbar layout */
.oo-ui-toolbar {
clear: none;
display: flex; /* fix overflow issue at narrow widths */
}
.ve-ui-toolbar > .oo-ui-toolbar-bar{
width: 100%; /* fix overflow issue at narrow widths */
}
.ve-ui-toolbar.ve-ui-toolbar-floating > .oo-ui-toolbar-bar{
width: auto; /* fix overflow issue at narrow widths */
}
.ve-init-mw-desktopArticleTarget-toolbar-open > .oo-ui-toolbar-bar > div:nth-child(4) {
display: none;
}
.ve-ui-toolbar-floating > .oo-ui-toolbar-bar {
top: var(--wikigg-header-scroll-height);
}
.oo-ui-toolbar-bar .oo-ui-toolbar-bar,
.ve-area-wrapper .oo-ui-toolbar-bar {
background-color: var(--wiki-content-background-color--secondary);
}
.ve-init-mw-desktopArticleTarget-originalContent .content-body {
clear: right;
}
/* fix a lot of empty space from TemplateData when using VE Source */
.tdg-editscreen-main.mw-body-content::after {
display: none;
}
/*************
* End editor *
**************/
/****************
* Tabber styles *
*****************/
.tabber__header {
box-shadow: inset 0 -1px 0 0 var(--wiki-content-border-color);
}
.tabber__tab,
.tabber__tab:visited {
color: var(--wiki-content-text-color);
}
.tabber__tab:hover,
.tabber__tab:hover:visited,
.tabber__tab[aria-selected="true"],
.tabber__tab[aria-selected="true"]:visited {
color: var(--wiki-content-link-color);
}
.tabber__tab[aria-selected="true"] {
box-shadow: 0 -2px 0 var(--wiki-content-link-color) inset;
}
.tabber__header__prev::after,
.tabber__header__next::after {
filter: var(--wiki-icon-general-filter);
}
/********************
* End Tabber styles *
*********************/
/***************************************
* Various fixes for multi-theme Vector *
****************************************/
:focus,
:focus-visible {
outline-color: var(--wiki-accent-color)
}
:focus-visible {
outline-style: solid;
}
.oo-ui-iconElement-icon {
filter: var(--wiki-icon-to-link-filter);
}
.oo-ui-iconElement-icon.oo-ui-icon-reload {
filter: brightness(0) var(--wiki-icon-to-link-filter);
}
fieldset {
border-color: var(--wiki-content-border-color);
}
hr {
background-color: var(--wiki-content-border-color);
}
.CategoryTreeToggle {
color: var(--wiki-content-link-color);
}
input,
select {
background-color: var(--wiki-content-background-color--secondary);
border: 1px solid var(--wiki-content-border-color);
color: var(--wiki-content-text-color);
}
input:hover,
input:focus,
input:active {
background-color: var(--wiki-content-background-color--secondary);
color: var(--wiki-content-text-color);
border-color: var(--wiki-accent-color);
box-shadow: none;
}
input:focus-visible {
outline: 1px solid var(--wiki-accent-color);
}
input::file-selector-button,
input[type="button"],
input[type="submit"] {
background-color: var(--wiki-accent-color);
border-color: var(--wiki-accent-color);
color: var(--wiki-accent-label-color);
}
.vector-body blockquote {
border-color: var(--wiki-content-border-color);
}
/* category bar and filetoc */
.catlinks{
background: var(--wiki-content-catlinks-background, var(--wiki-content-background-color--secondary));
border-width: var(--wiki-content-catlinks-border-width, 1px);
border-style: var(--wiki-content-catlinks-border-style, solid);
border-color: var(--wiki-content-catlinks-border-color, var(--wiki-content-border-color));
border-radius: var(--wiki-content-catlinks-border-radius, 0px);
border-image: var(--wiki-content-catlinks-border-image, none);
box-shadow: var(--wiki-content-catlinks-box-shadow, none);
}
ul#filetoc {
background: var(--wiki-content-filetoc-background, var(--wiki-content-background-color--secondary));
border-width: var(--wiki-content-filetoc-border-width, 1px);
border-style: var(--wiki-content-filetoc-border-style, solid);
border-color: var(--wiki-content-filetoc-border-color, var(--wiki-content-border-color));
border-radius: var(--wiki-content-filetoc-border-radius, 0px);
border-image: var(--wiki-content-filetoc-border-image, none);
box-shadow: var(--wiki-content-filetoc-box-shadow, none);
}
/**/
body .ui-dialog .ui-widget-header {
/* we need an important here because the built-in styles have one :( */
background: var(--wiki-content-background-color) !important;
border: 1px solid var(--wiki-content-border-color);
color: var(--wiki-content-text-color);
}
.ui-widget-header .ui-dialog-titlebar-close .ui-icon-closethick {
filter: var(--wiki-icon-general-filter);
}
.ui-widget-header .ui-dialog-titlebar-close.ui-state-hover {
background: var(--wiki-content-background-color--secondary);
border: 1px solid var(--wiki-content-border-color);
}
.ui-widget-content {
background: var(--wiki-content-background-color--secondary);
color: var(--wiki-content-text-color);
border: 1px solid var(--wiki-content-border-color);
}
body .ui-button {
/* we need an important here because the built-in styles have one. Vector is a mess */
background: var(--wiki-accent-color) !important;
border-color: var(--wiki-accent-color) !important;
color: var(--wiki-accent-label-color);
}
body .ui-button:hover,
body .ui-button:focus,
body .ui-button:active {
/* we need an important here because we had to use some above */
background: var(--wiki-accent-color--hover) !important;
border-color: var(--wiki-accent-color--hover) !important;
color: var(--wiki-accent-label-color);
}
.ui-state-default,
.ui-widget-content .ui-state-default,
.ui-widget-header .ui-state-default {
color: var(--wiki-accent-label-color);
}
.ui-state-focus {
/* we need an important here because the built-in styles have one */
background: var(--wiki-accent-color) !important;
color: var(--wiki-accent-label-color) !important;
}
.ui-menu .ui-menu-item a {
color: var(--wiki-content-dynamic-color);
}
#contentSub,
#contentSub2 {
color: var(--wiki-content-text-mix-color);
}
#contentSub2:empty {
display: none;
}
/* notifications ("your edit was saved", etc.) */
.mw-notification {
background-color: var(--wiki-content-background-color--secondary);
color: var(--wiki-content-text-color);
border-color: var(--wiki-content-border-color);
top: var(--wikigg-header-scroll-height);
}
.mw-notification .oo-ui-labelElement-label {
color: var(--wiki-content-text-color);
}
.mw-notification .oo-ui-iconElement-icon {
filter: unset;
}
/**/
.mime-type.has-warning {
color: var(--wiki-content-text-color);
}
.oo-ui-image-warning.oo-ui-icon-alert,
.mw-ui-icon-alert-warning::before {
filter: drop-shadow(0 0 3px #000);
}
.oo-ui-image-invert.oo-ui-icon-subtract,
.mw-ui-icon-subtract-invert::before,
.oo-ui-image-invert.oo-ui-icon-add,
.mw-ui-icon-add-invert::before {
filter: brightness(0) var(--wiki-icon-to-link-filter);
filter: var(--wiki-icon-general-filter);
}
.mw_metadata td,
.mw_metadata th {
border-color: var(--wiki-content-border-color);
}
.mw_metadata th {
background-color: var(--wiki-content-background-color--secondary);
}
.mw_metadata td {
background-color: var(--wiki-content-background-color);
}
.mw-datatable td,
.mw-datatable th {
background-color: var(--wiki-content-background-color);
border-color: var(--wiki-content-border-color);
}
#mw-allmessagestable tbody:hover td,
.mw-datatable tr:hover > td {
background-color: var(--wiki-content-background-color--secondary);
}
#mw-allmessagestable .am_default {
background-color: color-mix(in srgb, var(--wiki-accent-color) 80%, transparent);
color: var(--wiki-accent-label-color);
}
#mw-allmessagestable .am_actual,
#mw-allmessagestable tbody:hover .am_default {
background-color: color-mix(in srgb, var(--wiki-accent-color) 60%, transparent);
}
#mw-allmessagestable .am_actual {
color: var(--wiki-accent-label-color);
}
#mw-allmessagestable tbody:hover .am_actual {
background-color: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent);
}
.mw-datatable,
.mw-json {
background-color: var(--wiki-content-background-color);
border-color: var(--wiki-content-border-color);
color: inherit;
}
.mw-datatable > * > tr > th,
.mw-datatable > tr > th,
.mw-json > * > tr > th,
.mw-json > tr > th {
background-color: var(--wiki-content-background-color--secondary);
border-color: var(--wiki-content-border-color);
padding-bottom: 9px;
padding-top: 9px;
}
.mw-datatable > * > tr > td,
.mw-datatable > tr > td,
.mw-json > * > tr > td,
.mw-json > tr > td {
border-color: var(--wiki-content-border-color);
}
.mw-json tr {
background-color: inherit;
}
.mw-json .mw-json-single-value,
.mw-json .mw-json-value,
.mw-json .value {
background: color-mix(in srgb, var(--wiki-success-color) 60%, transparent);
}
.mw-json .mw-json-empty {
background: var(--wiki-content-background-color--secondary);
}
.mw-message-box,
.mw-message-box-warning {
background-color: var(--wiki-content-background-color--secondary);
color: var(--wiki-content-text-color);
}
.mw-message-box-warning {
border-color: var(--wiki-warning-color);
border-width: 1px 1px 1px 10px;
}
.mw-destfile-warning {
border-color: var(--wiki-warning-color);
color: var(--wiki-content-text-color);
background-color: color-mix(in srgb, var(--wiki-warning-color) 25%, transparent);
}
.wikitable *,
.wikitable :after,
.wikitable :before {
-webkit-box-sizing: inherit;
box-sizing: inherit;
}
.cargo-pagevalues-tableinfo {
background-color: var(--wiki-content-background-color);
border-bottom: 1px solid var(--wiki-content-border-color);
top: 46px;
position: static;
/* override sticky in the built-in */
}
.cargo-table-diagram .cargo-table-svg .node.entity-name rect {
fill: var(--wiki-content-background-color--secondary);
fill-opacity: 1;
}
.cargo-table-diagram .cargo-table-svg .node rect {
stroke: var(--wiki-content-border-color);
opacity: 1;
}
.cargo-table-diagram .cargo-table-svg .node text tspan {
fill: var(--wiki-content-text-color);
}
table.cargoTable {
color: var(--wiki-content-text-color);
}
table.cargoTable tbody td,
table.cargoTable thead th {
border: 1px solid var(--wiki-content-border-color);
}
table.cargoTable tr:hover {
background-color: color-mix(in srgb, var(--wiki-accent-color) 25%, transparent);
}
table.cargoTable thead tr:nth-child(odd),
table.cargoTable.noMerge thead tr:nth-child(odd) {
background-color: var(--wiki-accent-color);
}
table.cargoTable tbody tr:nth-child(2n),
table.cargoTable.noMerge tbody tr:nth-child(2n) {
background-color: var(--wiki-content-background-color);
}
table.cargoTable tbody tr:nth-child(odd),
table.cargoTable.noMerge tbody tr:nth-child(odd) {
background-color: var(--wiki-content-background-color--secondary);
}
table.cargoTable th.headerSort {
color: var(--wiki-accent-label-color);
}
table.cargoTable th.headerSort:hover {
color: var(--wiki-accent-label-color);
text-decoration: underline;
}
table.cargoTable th.headerSort::after {
background-color: var(--wiki-accent-link-color);
}
#mw-content-text div.cargoReplacementTableInfo {
background: var(--wiki-content-background-color--secondary);
border: 1px solid var(--wiki-content-border-color);
}
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter,
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_processing,
.dataTables_wrapper .dataTables_paginate {
color: var(--wiki-content-text-color);
}
table.dataTable tbody tr {
background-color: var(--wiki-content-background-color);
}
table.dataTable.display tbody tr.odd > .sorting_1,
table.dataTable.order-column.stripe tbody tr.odd > .sorting_1 {
background-color: color-mix(in srgb, var(--wiki-content-background-color--secondary) 75%, transparent);
}
table.dataTable.stripe tbody tr.odd,
table.dataTable.display tbody tr.odd,
table.dataTable.display tbody tr.even > .sorting_1,
table.dataTable.order-column.stripe tbody tr.even > .sorting_1 {
background-color: color-mix(in srgb, var(--wiki-content-background-color--secondary) 50%, transparent);
}
table.dataTable.display tbody tr:hover > .sorting_1,
table.dataTable.order-column.hover tbody tr:hover > .sorting_1 {
background-color: color-mix(in srgb, var(--wiki-content-background-color) 75%, transparent);
}
table.dataTable.hover tbody tr:hover,
table.dataTable.display tbody tr:hover {
background-color: var(--wiki-content-background-color--secondary);
}
table.dataTable.row-border tbody th,
table.dataTable.row-border tbody td,
table.dataTable.display tbody th,
table.dataTable.display tbody td {
border-top: 1px solid var(--wiki-content-border-color);
}
.dataTables_wrapper .dataTables_paginate .paginate_button,
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active {
/* we need this !important to override a built-in one */
color: var(--wiki-content-text-mix-color) !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
/* we need this !important to override a built-in one */
color: var(--wiki-content-text-color) !important;
border: 1px solid var(--wiki-content-border-color);
background-color: var(--wiki-content-background-color);
background: linear-gradient(to bottom, var(--wiki-content-background-color) 0%, var(--wiki-content-background-color--secondary) 100%);
}
div.drilldown-filters-wrapper {
background-color: transparent;
border: 1px solid var(--wiki-content-border-color);
color: var(--wiki-content-text-color);
}
.action-pagevalues tr:nth-of-type(2n) {
background-color: color-mix(in srgb, var(--wiki-content-background-color--secondary) 50%, transparent);
}
.action-pagevalues tr:hover {
background-image: linear-gradient(color-mix(in srgb, var(--wiki-accent-color) 20%, transparent), color-mix(in srgb, var(--wiki-accent-color) 20%, transparent));
}
div.specialCargoQuery-extraPane {
background: var(--wiki-content-background-color);
}
.oo-ui-panelLayout-framed {
border-color: var(--wiki-content-border-color);
}
.oo-ui-inputWidget-input + .oo-ui-image-invert.oo-ui-icon-check {
background-image: none;
}
.oo-ui-inputWidget-input:checked + .oo-ui-image-invert.oo-ui-icon-check::before {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
background-image: url(/load.php?modules=oojs-ui-core.icons&image=check&variant=invert&format=rasterized&skin=vector&version=y9f1k);
background-image: linear-gradient(transparent, transparent), url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2220%22 height=%2220%22 viewBox=%220 0 20 20%22%3E%3Ctitle%3E check %3C/title%3E%3Cg fill=%22%23fff%22%3E%3Cpath d=%22M7 14.2 2.8 10l-1.4 1.4L7 17 19 5l-1.4-1.4z%22/%3E%3C/g%3E%3C/svg%3E");
content: '';
pointer-events: none;
filter: var(--wiki-icon-general-filter);
}
.oo-ui-checkboxInputWidget [type="checkbox"] + span,
.oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:checked + span {
filter: unset;
background-color: color-mix(in srgb, var(--wiki-accent-color) 5%, transparent);
border-color: color-mix(in srgb, var(--wiki-accent-color) 75%, transparent);
}
.oo-ui-checkboxInputWidget [type="checkbox"]:disabled + span {
background-color: var(--wiki-content-text-mix-color);
border-color: var(--wiki-content-text-mix-color);
}
.oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:checked + span,
.oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:indeterminate + span,
.oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:hover + span {
border-color: var(--wiki-accent-color);
filter: unset;
}
.oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:checked + span,
.oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:indeterminate + span {
background-color: var(--wiki-accent-color);
}
.oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:checked:focus + span,
.oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:indeterminate:focus + span {
box-shadow: none;
}
.oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:active + span {
border-color: var(--wiki-accent-color);
box-shadow: inset 0 0 0 1px var(--wiki-accent-color);
}
.oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:focus + span {
border-color: var(--wiki-accent-color);
box-shadow: inset 0 0 0 1px var(--wiki-accent-color);
outline: 1px solid transparent;
}
.oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:checked + span,
.oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:indeterminate + span,
.oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:checked:focus + span {
background-color: var(--wiki-accent-color);
border-color: var(--wiki-accent-color);
}
.oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:hover + span,
.oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:active + span,
.oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:focus + span,
.oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:checked:hover + span,
.oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:checked:active + span,
.oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:checked:focus + span,
.oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:indeterminate:hover + span,
.oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:indeterminate:active + span,
.oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:indeterminate:focus + span {
background-color: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent);
border-color: var(--wiki-accent-color);
}
.oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:active + span {
background-color: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent)
}
.oo-ui-image-invert.oo-ui-icon-check {
background: none;
position: relative;
}
.oo-ui-inputWidget-input:checked + .oo-ui-image-invert.oo-ui-icon-check::before {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
background-image: url(/load.php?modules=oojs-ui-core.icons&image=check&variant=invert&format=rasterized&skin=vector&version=y9f1k);
background-image: linear-gradient(transparent, transparent), url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2220%22 height=%2220%22 viewBox=%220 0 20 20%22%3E%3Ctitle%3E check %3C/title%3E%3Cg fill=%22%23fff%22%3E%3Cpath d=%22M7 14.2 2.8 10l-1.4 1.4L7 17 19 5l-1.4-1.4z%22/%3E%3C/g%3E%3C/svg%3E");
content: '';
pointer-events: none;
filter: var(--wiki-icon-general-filter);
}
.oo-ui-indicatorElement-indicator {
filter: var(--wiki-icon-to-link-filter);
}
.oo-ui-tagItemWidget.oo-ui-widget-enabled:not(.oo-ui-tagItemWidget-fixed) {
background-color: var(--wiki-content-background-color--secondary);
}
.oo-ui-tagItemWidget.oo-ui-widget-enabled:hover {
color: var(--wiki-content-text-color--hover);
}
.oo-ui-tagItemWidget.oo-ui-widget-enabled:focus {
border-color: var(--wiki-accent-color);
box-shadow: inset 0 0 0 1px var(--wiki-accent-color);
}
.oo-ui-tagItemWidget.oo-ui-widget-disabled {
background-color: var(--wiki-content-background-color--secondary);
color: var(--wiki-content-text-mix-color);
border-color: var(--wiki-content-text-mix-color);
}
.client-js .mw-recentchanges-toplinks:not(.mw-recentchanges-toplinks-collapsed) {
border-color: var(--wiki-content-border-color);
}
.mw-rcfilters-ui-savedLinksListWidget-placeholder.oo-ui-optionWidget .oo-ui-labelElement-label {
color: var(--wiki-content-text-color);
}
.mw-rcfilters-ui-savedLinksListWidget-menu .mw-rcfilters-ui-savedLinksListItemWidget {
color: var(--wiki-content-text-color);
padding: 8px 6px;
-webkit-transition: color .3s, background-color .3s;
transition: color .3s, background-color .3s;
}
.mw-rcfilters-ui-savedLinksListWidget-menu .mw-rcfilters-ui-savedLinksListItemWidget:hover {
background-color: color-mix(in srgb, var(--wiki-accent-color) 15%, transparent);
color: var(--wiki-accent-color);
}
.mw-rcfilters-ui-savedLinksListItemWidget-label {
color: var(--wiki-accent-color);
}
.mw-rcfilters-ui-filterTagMultiselectWidget.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-outlined {
background-color: transparent;
}
.mw-rcfilters-ui-filterTagMultiselectWidget.oo-ui-widget-enabled .oo-ui-tagMultiselectWidget-handle {
border-color: var(--wiki-content-border-color);
}
.mw-rcfilters-ui-filterTagMultiselectWidget.oo-ui-widget-enabled .oo-ui-tagMultiselectWidget-handle + .mw-rcfilters-ui-table,
.mw-rcfilters-ui-filterTagMultiselectWidget.oo-ui-widget-enabled .oo-ui-tagMultiselectWidget-handle.mw-rcfilters-ui-filterTagMultiselectWidget-emphasize {
background-color: var(--wiki-content-background-color--secondary);
}
.mw-rcfilters-ui-filterTagMultiselectWidget-views-select-widget.oo-ui-widget {
border-color: var(--wiki-content-border-color);
padding: 0;
}
.mw-rcfilters-ui-filterTagMultiselectWidget-wrapper-content-title {
color: var(--wiki-content-text-color);
}
.mw-rcfilters-ui-filterTagMultiselectWidget-wrapper-content-savedQueryTitle {
color: var(--wiki-content-text-color);
}
.mw-rcfilters-ui-filterTagMultiselectWidget-hideshowButton .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
color: var(--wiki-content-link-color);
}
.mw-rcfilters-ui-filterTagMultiselectWidget-hideshowButton .oo-ui-buttonElement-button > .oo-ui-labelElement-label:hover {
color: var(--wiki-content-link-color--hover);
}
.mw-rcfilters-ui-filterTagMultiselectWidget-hideshowButton .oo-ui-buttonElement-button:before {
content: "[";
}
.mw-rcfilters-ui-filterTagMultiselectWidget-hideshowButton .oo-ui-buttonElement-button:after {
content: "]";
}
.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button {
color: var(--wiki-content-text-color);
}
.oo-ui-tagItemWidget.oo-ui-widget-enabled .oo-ui-buttonElement-button:hover {
background-color: var(--wiki-content-dynamic-color--inverted);
}
.mw-rcfilters-ui-filterTagMultiselectWidget-emptyFilters {
color: color-mix(in srgb, var(--wiki-content-text-color) 60%, transparent);
}
.mw-rcfilters-ui-filterMenuSectionOptionWidget {
background-color: var(--wiki-content-background-color);
}
.oo-ui-menuSelectWidget {
background-color: var(--wiki-content-background-color--secondary);
border: 1px solid var(--wiki-content-text-mix-color);
}
.mw-rcfilters-ui-filterMenuSectionOptionWidget-header-title.oo-ui-labelElement-label {
color: var(--wiki-content-text-color);
}
.mw-rcfilters-ui-filterMenuHeaderWidget-header {
background-color: var(--wiki-content-background-color);
border-bottom-color: var(--wiki-content-border-color);
}
.mw-rcfilters-ui-filterMenuHeaderWidget-title {
color: var(--wiki-content-text-color);
}
.mw-rcfilters-ui-itemMenuOptionWidget:not(:last-child):not(.mw-rcfilters-ui-itemMenuOptionWidget-identifier-talk) {
border-bottom-color: var(--wiki-content-text-mix-color);
}
.mw-rcfilters-ui-itemMenuOptionWidget-view-namespaces {
border-top-color: var(--wiki-content-border-color);
}
.mw-rcfilters-ui-itemMenuOptionWidget.oo-ui-optionWidget-selected,
.mw-rcfilters-ui-itemMenuOptionWidget.oo-ui-optionWidget-selected .mw-rcfilters-ui-itemMenuOptionWidget-label-title,
.mw-rcfilters-ui-itemMenuOptionWidget:hover,
.mw-rcfilters-ui-itemMenuOptionWidget:hover .mw-rcfilters-ui-itemMenuOptionWidget-label-title {
color: var(--wiki-content-text-color);
}
.mw-rcfilters-ui-itemMenuOptionWidget.oo-ui-optionWidget-selected .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type=checkbox] + span,
.mw-rcfilters-ui-itemMenuOptionWidget:hover .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type=checkbox] + span {
border-color: var(--wiki-accent-color);
}
.mw-rcfilters-ui-itemMenuOptionWidget.oo-ui-optionWidget-selected,
.mw-rcfilters-ui-itemMenuOptionWidget:hover {
background-color: color-mix(in srgb, var(--wiki-accent-color) 15%, transparent)
}
.mw-rcfilters-ui-itemMenuOptionWidget-excludeLabel,
.mw-rcfilters-ui-itemMenuOptionWidget-label-title {
color: var(--wiki-content-text-color);
}
.mw-rcfilters-ui-itemMenuOptionWidget-label-desc {
color: color-mix(in srgb, var(--wiki-content-text-color) 60%, transparent);
}
.mw-rcfilters-ui-itemMenuOptionWidget.oo-ui-flaggedElement-muted.oo-ui-optionWidget-selected:hover,
.mw-rcfilters-ui-itemMenuOptionWidget.oo-ui-flaggedElement-muted:not(.oo-ui-optionWidget-selected):hover {
background-color: color-mix(in srgb, var(--wiki-accent-color) 15%, transparent);
}
.mw-rcfilters-ui-itemMenuOptionWidget.oo-ui-flaggedElement-muted.oo-ui-optionWidget-selected .mw-rcfilters-ui-itemMenuOptionWidget-label-title,
.mw-rcfilters-ui-itemMenuOptionWidget.oo-ui-flaggedElement-muted:not(.oo-ui-optionWidget-selected) .mw-rcfilters-ui-itemMenuOptionWidget-label-title {
color: var(--wiki-content-text-color);
}
.mw-rcfilters-ui-itemMenuOptionWidget.oo-ui-flaggedElement-muted.oo-ui-optionWidget-selected .mw-rcfilters-ui-itemMenuOptionWidget-label-desc {
color: color-mix(in srgb, var(--wiki-content-text-color) 60%, transparent);
}
.mw-rcfilters-ui-itemMenuOptionWidget.oo-ui-optionWidget-selected .mw-rcfilters-ui-itemMenuOptionWidget-label-desc,
.mw-rcfilters-ui-itemMenuOptionWidget:hover .mw-rcfilters-ui-itemMenuOptionWidget-label-desc,
.mw-rcfilters-ui-itemMenuOptionWidget.oo-ui-flaggedElement-muted:not(.oo-ui-optionWidget-selected) .mw-rcfilters-ui-itemMenuOptionWidget-label-desc {
color: color-mix(in srgb, var(--wiki-content-text-color) 80%, transparent);
}
.mw-rcfilters-ui-itemMenuOptionWidget.oo-ui-flaggedElement-muted.oo-ui-optionWidget-selected .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type=checkbox] + span,
.mw-rcfilters-ui-itemMenuOptionWidget.oo-ui-flaggedElement-muted:not(.oo-ui-optionWidget-selected) .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type=checkbox] + span {
border-color: var(--wiki-content-text-color);
}
.mw-rcfilters-ui-viewSwitchWidget label.oo-ui-labelWidget {
color: color-mix(in srgb, var(--wiki-content-text-color) 60%, transparent);
}
.oo-ui-tagItemWidget.oo-ui-widget-enabled,
.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-outlined .oo-ui-tagItemWidget.oo-ui-widget-enabled {
background-color: transparent;
color: var(--wiki-content-text-color);
border-color: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent);
}
.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-outlined .oo-ui-tagItemWidget.oo-ui-widget-enabled.selected {
background-color: color-mix(in srgb, var(--wiki-accent-color) 10%, transparent);
border-color: var(--wiki-accent-color);
}
.mw-rcfilters-ui-datePopupWidget {
border-color: var(--wiki-content-border-color);
}
.mw-rcfilters-ui-datePopupWidget .mw-rcfilters-ui-valuePickerWidget-title {
color: color-mix(in srgb, var(--wiki-content-text-color) 80%, transparent);
}
.mw-changeslist-legend,
.mw-rcfilters-ui-changesListWrapperWidget .mw-changeslist-legend {
background-color: var(--wiki-content-background-color--secondary);
border-color: var(--wiki-content-border-color);
}
@keyframes fadeBlue {
60% {
border-top-color: var(--wiki-accent-color);
}
100% {
border-top-color: var(--wiki-content-border-color);
}
}
.mw-rcfilters-ui-changesListWrapperWidget-previousChangesIndicator {
border-top-color: var(--wiki-content-border-color);
}
.mw-rcfilters-ui-menuSelectWidget-footer {
background-color: var(--wiki-content-text-mix-color-95);
}
.mw-rcfilters-ui-filterMenuOptionWidget.oo-ui-flaggedElement-muted:not(.oo-ui-optionWidget-selected) {
background-color: color-mix(in srgb, var(--wiki-content-text-color) 10%, transparent);
}
.oo-ui-iconElement-icon.mw-rcfilters-ui-filterItemHighlightButton-circle {
filter: unset;
}
.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-outlined .mw-rcfilters-ui-tagItemWidget-selected.oo-ui-tagItemWidget.oo-ui-widget-enabled {
background-color: color-mix(in srgb, var(--wiki-accent-color) 20%, transparent);
border-color: var(--wiki-accent-color);
}
.mw-rcfilters-ui-tagItemWidget.oo-ui-flaggedElement-muted.oo-ui-tagItemWidget.oo-ui-widget-enabled .oo-ui-labelElement-label {
color: color-mix(in srgb, var(--wiki-content-text-color) 76%, transparent);
}
.mw-rcfilters-ui-tagItemWidget-popup-content {
color: color-mix(in srgb, var(--wiki-content-text-color) 75%, transparent);
}
/* fix for weird focus box on recentchanges arrows when clicking, but keep it for tab navigation */
.mw-enhancedchanges-checkbox:focus + * .mw-enhancedchanges-arrow {
outline: none;
}
.mw-enhancedchanges-checkbox:focus-visible + * .mw-enhancedchanges-arrow {
outline: 1px solid var(--wiki-accent-color);
}
/**/
.oo-ui-popupWidget-anchored-bottom .oo-ui-popupWidget-anchor:before {
border-top-color: var(--wiki-content-border-color);
}
.oo-ui-popupWidget-anchored-bottom .oo-ui-popupWidget-anchor:after {
border-top-color: var(--wiki-content-background-color--secondary);
}
.unpatrolled {
color: var(--wiki-alert-color);
}
.autocomment, .autocomment a, .autocomment a:visited {
color: var(--wiki-content-text-mix-color);
}
/* Recent changes filter highlighting */
.view-dark .mw-rcfilters-ui-changesListWrapperWidget li.mw-rcfilters-highlight-color-c1,
.view-dark .mw-rcfilters-ui-changesListWrapperWidget .mw-rcfilters-highlight-color-c1 tr:first-child,
.view-dark .mw-rcfilters-ui-changesListWrapperWidget tr.mw-rcfilters-highlight-color-c1.mw-rcfilters-ui-highlights-enhanced-toplevel:not(.mw-rcfilters-ui-changesListWrapperWidget-enhanced-grey) td:not(:nth-child(-n+2)),
.view-dark .mw-rcfilters-ui-changesListWrapperWidget tr.mw-rcfilters-highlight-color-c1.mw-rcfilters-ui-highlights-enhanced-nested:not(.mw-rcfilters-ui-changesListWrapperWidget-enhanced-grey) td:not(:nth-child(-n+4)) {
background-color: #1c283f;
}
.view-dark .mw-rcfilters-ui-changesListWrapperWidget li.mw-rcfilters-highlight-color-c2,
.view-dark .mw-rcfilters-ui-changesListWrapperWidget .mw-rcfilters-highlight-color-c2 tr:first-child,
.view-dark .mw-rcfilters-ui-changesListWrapperWidget tr.mw-rcfilters-highlight-color-c2.mw-rcfilters-ui-highlights-enhanced-toplevel:not(.mw-rcfilters-ui-changesListWrapperWidget-enhanced-grey) td:not(:nth-child(-n+2)),
.view-dark .mw-rcfilters-ui-changesListWrapperWidget tr.mw-rcfilters-highlight-color-c2.mw-rcfilters-ui-highlights-enhanced-nested:not(.mw-rcfilters-ui-changesListWrapperWidget-enhanced-grey) td:not(:nth-child(-n+4)) {
background-color: #0f3128;
}
.view-dark .mw-rcfilters-ui-changesListWrapperWidget li.mw-rcfilters-highlight-color-c3,
.view-dark .mw-rcfilters-ui-changesListWrapperWidget .mw-rcfilters-highlight-color-c3 tr:first-child,
.view-dark .mw-rcfilters-ui-changesListWrapperWidget tr.mw-rcfilters-highlight-color-c3.mw-rcfilters-ui-highlights-enhanced-toplevel:not(.mw-rcfilters-ui-changesListWrapperWidget-enhanced-grey) td:not(:nth-child(-n+2)),
.view-dark .mw-rcfilters-ui-changesListWrapperWidget tr.mw-rcfilters-highlight-color-c3.mw-rcfilters-ui-highlights-enhanced-nested:not(.mw-rcfilters-ui-changesListWrapperWidget-enhanced-grey) td:not(:nth-child(-n+4)) {
background-color: #352c10;
}
.view-dark .mw-rcfilters-ui-changesListWrapperWidget li.mw-rcfilters-highlight-color-c4,
.view-dark .mw-rcfilters-ui-changesListWrapperWidget .mw-rcfilters-highlight-color-c4 tr:first-child,
.view-dark .mw-rcfilters-ui-changesListWrapperWidget tr.mw-rcfilters-highlight-color-c4.mw-rcfilters-ui-highlights-enhanced-toplevel:not(.mw-rcfilters-ui-changesListWrapperWidget-enhanced-grey) td:not(:nth-child(-n+2)),
.view-dark .mw-rcfilters-ui-changesListWrapperWidget tr.mw-rcfilters-highlight-color-c4.mw-rcfilters-ui-highlights-enhanced-nested:not(.mw-rcfilters-ui-changesListWrapperWidget-enhanced-grey) td:not(:nth-child(-n+4)) {
background-color: #411d0c;
}
.view-dark .mw-rcfilters-ui-changesListWrapperWidget li.mw-rcfilters-highlight-color-c5,
.view-dark .mw-rcfilters-ui-changesListWrapperWidget .mw-rcfilters-highlight-color-c5 tr:first-child,
.view-dark .mw-rcfilters-ui-changesListWrapperWidget tr.mw-rcfilters-highlight-color-c5.mw-rcfilters-ui-highlights-enhanced-toplevel:not(.mw-rcfilters-ui-changesListWrapperWidget-enhanced-grey) td:not(:nth-child(-n+2)),
.view-dark .mw-rcfilters-ui-changesListWrapperWidget tr.mw-rcfilters-highlight-color-c5.mw-rcfilters-ui-highlights-enhanced-nested:not(.mw-rcfilters-ui-changesListWrapperWidget-enhanced-grey) td:not(:nth-child(-n+4)) {
background-color: #3f0f0f;
}
.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled,
.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-outlined {
background-color: transparent;
}
.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled .oo-ui-tagMultiselectWidget-handle {
background-color: var(--wiki-content-background-color--secondary);
border-color: var(--wiki-content-border-color);
color: var(--wiki-content-text-color);
-webkit-transition: border-color 300ms, box-shadow 300ms;
transition: border-color 300ms, box-shadow 300ms;
}
.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-inlined.oo-ui-tagMultiselectWidget-focus .oo-ui-tagMultiselectWidget-handle {
box-shadow: inset 0 0 0 1px var(--wiki-accent-color);
border-color: var(--wiki-accent-color);
outline: 0
}
.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-inlined:hover .oo-ui-tagMultiselectWidget-handle {
border-color: var(--wiki-accent-color)
}
.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-inlined.oo-ui-flaggedElement-invalid .oo-ui-tagMultiselectWidget-handle,
.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-inlined.oo-ui-flaggedElement-invalid:hover .oo-ui-tagMultiselectWidget-handle {
border-color: var(--wiki-alert-color)
}
.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-outlined .oo-ui-tagMultiselectWidget-handle {
background-color: var(--wiki-content-background-color--secondary);
border-bottom-width: 0;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0
}
.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-outlined .oo-ui-inputWidget-input {
border-radius: 0;
}
.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-outlined.oo-ui-flaggedElement-invalid .oo-ui-inputWidget-input {
border-color: var(--wiki-alert-color);
}
.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-flaggedElement-invalid .oo-ui-inputWidget-input {
color: var(--wiki-alert-color);
}
.oo-ui-tagMultiselectWidget.oo-ui-widget-disabled .oo-ui-tagMultiselectWidget-handle {
opacity: 0.5;
}
.oo-ui-tagMultiselectWidget-handle .oo-ui-tagMultiselectWidget-group > input {
color: var(--wiki-content-text-color);
}
.oo-ui-tagMultiselectWidget .oo-ui-inputWidget-input {
color: inherit;
background: transparent;
font-family: inherit;
}
.oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-dropdownWidget-handle,
.oo-ui-textInputWidget.oo-ui-widget-disabled .oo-ui-inputWidget-input,
.oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-dropdownWidget-handle {
background: var(--wiki-content-text-mix-color-95);
color: color-mix(in srgb, var(--wiki-content-text-color) 25%, transparent);
text-shadow: none;
border-color: var(--wiki-content-text-mix-color);
}
.oo-ui-dropdownInputWidget select {
border-color: var(--wiki-content-border-color);
}
.oo-ui-dropdownInputWidget.oo-ui-widget-enabled select:focus {
border-color: var(--wiki-accent-color);
box-shadow: inset 0 0 0 1px var(--wiki-accent-color);
}
.oo-ui-toggleSwitchWidget {
background-color: var(--wiki-content-background-color--secondary);
border-color: var(--wiki-content-border-color);
}
.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:hover {
background-color: color-mix(in srgb, var(--wiki-content-background-color--secondary) 95%, var(--wiki-content-dynamic-color));
border-color: color-mix(in srgb, var(--wiki-content-border-color) 95%, var(--wiki-content-dynamic-color));
}
.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled .oo-ui-toggleSwitchWidget-grip {
background-color: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent);
border-color: #0006;
}
.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:hover .oo-ui-toggleSwitchWidget-grip {
background-color: color-mix(in srgb, var(--wiki-accent-color) 90%, var(--wiki-content-dynamic-color));
border-color: #0006;
}
.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-grip {
background-color: var(--wiki-accent-label-color);
border-color: #0006;
}
.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:focus .oo-ui-toggleSwitchWidget-grip {
border-color: var(--wiki-accent-color);
}
.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-on {
background-color: var(--wiki-accent-color);
border-color: var(--wiki-accent-color);
}
.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-on:hover {
background-color: var(--wiki-accent-color--hover);
border-color: var(--wiki-accent-color--hover);
}
.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:active,
.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:active:hover,
.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:active:focus {
background-color: var(--wiki-accent-color--hover);
border-color: var(--wiki-accent-color--hover);
box-shadow: inset 0 0 0 1px var(--wiki-accent-color--hover);
}
.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:active .oo-ui-toggleSwitchWidget-grip,
.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:active:hover .oo-ui-toggleSwitchWidget-grip,
.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:active:focus .oo-ui-toggleSwitchWidget-grip {
background-color: var(--wiki-accent-label-color);
border-color: var(--wiki-accent-label-color);
}
.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:focus {
border-color: var(--wiki-accent-color);
box-shadow: inset 0 0 0 1px var(--wiki-accent-color);
}
.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-on:active,
.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-on:active:hover {
background-color: var(--wiki-accent-color--hover);
border-color: var(--wiki-accent-color--hover);
}
.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-on:focus {
border-color: var(--wiki-accent-color);
}
.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-on:focus::before {
border-color: var(--wiki-accent-label-color);
}
.oo-ui-toggleSwitchWidget.oo-ui-widget-disabled {
background-color: var(--wiki-content-text-mix-color-95);
border-color: var(--wiki-content-text-mix-color-95);
}
.oo-ui-toggleSwitchWidget.oo-ui-widget-disabled.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-grip {
border-color: var(--wiki-content-dynamic-color--inverted);
box-shadow: inset 0 0 0 1px var(--wiki-content-dynamic-color--inverted);
}
.oo-ui-outlineOptionWidget.oo-ui-optionWidget-selected,
.oo-ui-outlineOptionWidget.oo-ui-optionWidget-highlighted {
background-color: var(--wiki-content-background-color--secondary);
color: var(--wiki-content-link-color);
}
.oo-ui-labelWidget.oo-ui-inline-help {
color: color-mix(in srgb, var(--wiki-content-text-color) 80%, transparent);
}
.oo-ui-progressBarWidget:not(.oo-ui-pendingElement-pending) {
background-color: var(--wiki-content-background-color);
border-color: var(--wiki-accent-color);
box-shadow: 0 1px 1px color-mix(in srgb, var(--wiki-content-dynamic-color) 15%, transparent);
}
.oo-ui-progressBarWidget.oo-ui-widget-enabled .oo-ui-progressBarWidget-bar {
background-color: var(--wiki-accent-color);
}
.oo-ui-bookletLayout-outlinePanel {
padding: 7px 0;
}
.oo-ui-processDialog-content .oo-ui-window-head,
.oo-ui-processDialog-content .oo-ui-window-foot,
.oo-ui-messageDialog-content > .oo-ui-window-head,
.oo-ui-messageDialog-content > .oo-ui-window-foot {
outline-color: var(--wiki-content-border-color);
}
.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
border-right-color: var(--wiki-content-border-color);
}
.oo-ui-messageDialog-title {
color: var(--wiki-content-heading-color);
}
.oo-ui-processDialog-actions-safe .oo-ui-widget-enabled.oo-ui-iconElement:not(.oo-ui-labelElement) > .oo-ui-buttonElement-button:hover {
background-color: var(--wiki-content-background-color);
border-right-color: var(--wiki-content-border-color);
}
.oo-ui-processDialog-errors {
background-color: color-mix(in srgb, var(--wiki-content-dynamic-color--inverted) 90%, transparent);
}
/* OAuth authorisation dialog */
#mw-mwoauth-authorize-form {
color: inherit;
}
.oo-ui-toolbar-bar,
.oo-ui-popupToolGroup-tools,
.oo-ui-listToolGroup-tools .oo-ui-tool.oo-ui-widget-enabled:hover {
background-color: var(--wiki-content-background-color--secondary);
color: var(--wiki-content-text-color);
}
.oo-ui-popupToolGroup-tools {
max-width: 100%;
}
.oo-ui-toolbar-actions .oo-ui-popupToolGroup.oo-ui-widget-enabled > .oo-ui-popupToolGroup-handle:hover {
border-right-color: var(--wiki-content-border-color);
}
.oo-ui-menuToolGroup-tools .oo-ui-tool.oo-ui-tool-active,
.oo-ui-tool.oo-ui-widget-enabled > .oo-ui-tool-link:active,
.oo-ui-tool.oo-ui-widget-enabled.oo-ui-tool-active > .oo-ui-tool-link,
.oo-ui-tool.oo-ui-widget-enabled.oo-ui-popupToolGroup-active > .oo-ui-tool-link,
.oo-ui-popupToolGroup.oo-ui-popupToolGroup-active > .oo-ui-popupToolGroup-handle {
background-color: var(--wiki-content-background-color);
color: var(--wiki-content-link-color);
}
.oo-ui-tool.oo-ui-widget-enabled .oo-ui-tool-link {
/* we remove the transition here because it causes the hard-coded color to flash briefly */
transition: none;
}
.oo-ui-popupToolGroup.oo-ui-popupToolGroup-active > .oo-ui-popupToolGroup-handle:hover {
color: var(--wiki-accent-color);
}
.oo-ui-popupToolGroup-tools .oo-ui-tool-active.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-tool-title {
color: var(--wiki-accent-color);
}
.oo-ui-popupToolGroup.oo-ui-widget-enabled > .oo-ui-popupToolGroup-handle:hover,
.oo-ui-tool.oo-ui-widget-enabled > .oo-ui-tool-link:hover {
background-color: color-mix(in srgb, var(--wiki-accent-color) 10%, transparent);
}
.oo-ui-popupToolGroup.oo-ui-widget-enabled > .oo-ui-popupToolGroup-handle:active {
background-color: color-mix(in srgb, var(--wiki-accent-color) 15%, transparent);
}
.oo-ui-popupToolGroup-tools .oo-ui-tool.oo-ui-widget-enabled .oo-ui-tool-link:focus {
box-shadow: inset 0 0 0 2px var(--wiki-accent-color);
}
.oo-ui-popupToolGroup.oo-ui-widget-enabled > .oo-ui-popupToolGroup-handle:focus,
.oo-ui-tool.oo-ui-widget-enabled .oo-ui-tool-link:focus,
.oo-ui-tool.oo-ui-widget-enabled > .oo-ui-tool-link:focus {
outline: 1px solid var(--wiki-accent-color);
box-shadow: inset 0 0 0 1px var(--wiki-accent-color);
}
.oo-ui-menuToolGroup,
.oo-ui-popupToolGroup-tools {
border-color: var(--wiki-content-border-color);
}
.oo-ui-toolbar-position-top > .oo-ui-toolbar-bar {
border-color: var(--wiki-content-border-color);
box-shadow: 0 1px 1px 0 color-mix(in srgb, var(--wiki-content-dynamic-color) 10%, transparent);
}
.oo-ui-barToolGroup-tools.oo-ui-toolGroup-enabled-tools .oo-ui-tool.oo-ui-widget-disabled.oo-ui-flaggedElement-primary > .oo-ui-tool-link,
.oo-ui-barToolGroup-tools.oo-ui-toolGroup-disabled-tools .oo-ui-tool.oo-ui-flaggedElement-primary > .oo-ui-tool-link {
background-color: var(--wiki-content-text-mix-color);
border-color: var(--wiki-content-text-mix-color);
}
.oo-ui-tool.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-tool-link {
background-color: var(--wiki-accent-color);
color: var(--wiki-accent-label-color);
}
.oo-ui-tool.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-tool-link:hover {
background-color: var(--wiki-accent-color--hover);
color: var(--wiki-accent-label-color);
}
.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button,
.oo-ui-buttonElement-frameless.oo-ui-widget-enabled > .oo-ui-buttonElement-button {
color: var(--wiki-content-text-color);
}
.oo-ui-buttonElement-frameless.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover,
.oo-ui-buttonElement-frameless.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active,
.oo-ui-buttonElement-frameless.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus {
color: var(--wiki-content-text-color--hover);
}
.oo-ui-buttonElement-frameless.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus {
border-color: var(--wiki-accent-color);
box-shadow: inset 0 0 0 1px var(--wiki-accent-color);
}
.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button {
color: var(--wiki-content-text-color);
}
.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover,
.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active,
.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus {
color: var(--wiki-content-text-color--hover);
}
.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button {
color: var(--wiki-alert-color);
}
.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button {
border: 1px solid transparent;
}
.oo-ui-buttonElement-frameless > button.oo-ui-buttonElement-button {
color: inherit;
}
.oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button,
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button {
background-color: var(--wiki-accent-color);
border-color: var(--wiki-accent-color);
color: var(--wiki-accent-label-color);
}
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:focus {
border-color: var(--wiki-accent-color);
box-shadow: inset 0 0 0 1px var(--wiki-accent-color), inset 0 0 0 2px var(--wiki-accent-label-color);
}
.oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus,
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus,
.oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover,
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover,
.oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active,
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active {
background-color: var(--wiki-accent-color--hover);
border-color: var(--wiki-accent-color--hover);
color: var(--wiki-accent-label-color);
}
.oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button {
background-color: #bf0017;
border-color: #bf0017;
color: #fff;
}
.oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus,
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus,
.oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover,
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover,
.oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active,
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active {
background-color: #59000b;
border-color: #59000b;
}
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
background-color: var(--wiki-accent-color);
border-color: var(--wiki-accent-color);
color: var(--wiki-accent-label-color);
}
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button:focus {
box-shadow: inset 0 0 0 1px var(--wiki-accent-color--hover), inset 0 0 0 2px var(--wiki-accent-label-color);
}
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus,
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover,
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active {
background-color: var(--wiki-accent-color);
border-color: var(--wiki-accent-color--hover);
color: var(--wiki-accent-label-color);
}
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button {
background-color: var(--wiki-accent-color);
border-color: var(--wiki-accent-color);
color: var(--wiki-accent-label-color);
}
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus,
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover,
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active {
background-color: var(--wiki-accent-color);
border-color: var(--wiki-accent-color);
}
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover,
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:active,
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button,
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-popupToolGroup-active > .oo-ui-buttonElement-button {
background-color: var(--wiki-content-background-color--secondary);
border-color: var(--wiki-content-link-color);
}
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:active,
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button,
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-popupToolGroup-active > .oo-ui-buttonElement-button {
color: var(--wiki-accent-color);
}
.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > input.oo-ui-buttonElement-button,
.oo-ui-buttonElement-frameless.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active {
background-color: color-mix(in srgb, var(--wiki-content-link-color) 8%, transparent);
color: var(--wiki-content-text-color);
border-color: var(--wiki-content-text-mix-color);
}
.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:active,
.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
color: color-mix(in srgb, var(--wiki-content-link-color) 90%, transparent);
border-color: color-mix(in srgb, var(--wiki-content-link-color) 90%, transparent);
}
.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover {
background-color: transparent;
}
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover {
background-color: var(--wiki-content-dynamic-color--inverted);
}
.oo-ui-buttonSelectWidget.oo-ui-widget-enabled:focus .oo-ui-buttonOptionWidget.oo-ui-optionWidget-selected .oo-ui-buttonElement-button {
border-color: var(--wiki-accent-color--hover);
box-shadow: inset 0 0 0 1px var(--wiki-accent-color--hover), inset 0 0 0 2px var(--wiki-accent-label-color);
}
.mw-htmlform-ooui .mw-htmlform-matrix tbody tr:nth-child(2n) td,
.mw-htmlform-ooui .mw-htmlform-matrix tbody tr:hover td {
background-color: var(--wiki-content-background-color--secondary);
}
.oo-ui-popupWidget-popup {
background-color: var(--wiki-content-background-color--secondary);
border-color: var(--wiki-content-border-color);
color: var(--wiki-content-text-color);
}
.mw-advancedSearch-namespace-selection {
background: var(--wiki-content-background-color--secondary);
border: 1px solid var(--wiki-content-border-color);
}
.oo-ui-popupWidget-popup .mw-advancedSearch-tooltip-head {
color: var(--wiki-content-text-mix-color);
}
.oo-ui-menuSectionOptionWidget {
color: var(--wiki-content-text-mix-color);
}
/* possibly deprecated */
.mw-ui-button:not(:disabled) {
background-color: var(--wiki-content-background-color--secondary);
border-color: var(--wiki-content-border-color);
color: var(--wiki-accent-color);
border-color: var(--wiki-content-border-color);
}
.mw-ui-button:not(:disabled):visited {
color: var(--wiki-accent-color);
}
.mw-ui-button:not(:disabled):hover {
background-color: var(--wiki-content-text-mix-color-95);
border-color: var(--wiki-content-border-color);
color: var(--wiki-accent-color--hover);
}
.mw-ui-button:not(:disabled):focus {
border-color: var(--wiki-accent-color);
color: var(--wiki-content-text-color);
box-shadow: none;
}
.mw-ui-button:not(:disabled):active,
.mw-ui-button:not(:disabled).is-on {
background-color: var(--wiki-content-background-color);
color: var(--wiki-content-dynamic-color);
border-color: var(--wiki-content-link-color);
}
/* end possibly deprecated */
.mw-ui-icon-before::before {
filter: var(--wiki-icon-to-link-filter);
}
.oo-ui-windowManager-modal > .oo-ui-dialog > .oo-ui-window-frame {
background-color: var(--wiki-content-background-color);
color: var(--wiki-content-text-color);
border-color: var(--wiki-content-border-color);
}
.oo-ui-windowManager-modal > .oo-ui-dialog {
background-color: color-mix(in srgb, var(--wiki-content-dynamic-color--inverted) 50%, transparent);
}
.oo-ui-windowManager-modal.oo-ui-windowManager-floating > .oo-ui-dialog > .oo-ui-window-frame {
border-color: var(--wiki-content-border-color);
}
.oo-ui-messageDialog-message {
color: var(--wiki-content-text-color);
}
.oo-ui-buttonElement-framed:not(.oo-ui-flaggedElement-primary):not(.oo-ui-buttonElement-active) > .oo-ui-buttonElement-button {
color: var(--wiki-content-text-color);
}
.oo-ui-buttonElement-framed.oo-ui-widget-disabled:not(.oo-ui-flaggedElement-primary):not(.oo-ui-buttonElement-active) > .oo-ui-buttonElement-button {
color: var(--wiki-content-text-mix-color-95);
}
.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button {
color: var(--wiki-accent-color);
border-color: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent);
}
.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover {
color: var(--wiki-accent-color--hover);
border-color: var(--wiki-accent-color);
box-shadow: inset 0 0 3px var(--wiki-accent-color);
}
.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active,
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
background-color: var(--wiki-content-background-color--secondary);
color: var(--wiki-content-link-color--hover);
border-color: var(--wiki-content-link-color);
}
.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus {
border-color: var(--wiki-accent-color);
box-shadow: inset 0 0 0 1px var(--wiki-accent-color);
}
.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button,
.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button {
background-color: var(--wiki-content-text-mix-color);
border-color: var(--wiki-content-text-mix-color);
}
.tdg-templateDataParamWidget-param-description {
color: var(--wiki-content-text-mix-color);
}
.oo-ui-messageWidget.oo-ui-flaggedElement-error:not(.oo-ui-messageWidget-block),
.mw-body-content .error {
color: var(--wiki-alert-color);
}
.oo-ui-messageWidget.oo-ui-messageWidget-block.oo-ui-flaggedElement-error {
background-color: var(--wiki-content-background-color--secondary);
border-color: var(--wiki-alert-color);
border-left-width: 10px;
}
.oo-ui-messageWidget.oo-ui-messageWidget-block.oo-ui-flaggedElement-warning {
background-color: var(--wiki-content-background-color--secondary);
}
.oo-ui-messageWidget.oo-ui-messageWidget-block.oo-ui-flaggedElement-success {
background-color: var(--wiki-content-background-color--secondary);
border-color: var(--wiki-success-color);
border-left-width: 10px;
}
.oo-ui-messageWidget.oo-ui-messageWidget-block.oo-ui-flaggedElement-notice {
background-color: var(--wiki-content-background-color--secondary);
border-color: var(--wiki-content-text-mix-color);
}
.tdg-templateDataParamWidget-param-alias {
color: var(--wiki-content-text-mix-color);
background-color: var(--wiki-content-background-color);
border-color: var(--wiki-content-border-color);
}
.tdg-templateDataParamWidget-param-alias:first-child {
background-color: var(--wiki-content-background-color--secondary);
}
.mw-templatedata-doc-muted {
color: var(--wiki-content-text-mix-color);
}
.oo-ui-processDialog-actions-safe .oo-ui-widget-enabled.oo-ui-iconElement:not(.oo-ui-labelElement) > .oo-ui-buttonElement-button:active {
background-color: var(--wiki-content-background-color--secondary);
border-right-color: var(--wiki-accent-color);
}
/* Date picker */
.mw-widget-dateInputWidget-handle {
background-color: var(--wiki-content-background-color--secondary);
border-color: var(--wiki-content-border-color);
}
.mw-widget-dateInputWidget.oo-ui-widget-enabled .mw-widget-dateInputWidget-handle:hover {
border-color: var(--wiki-accent-color);
box-shadow: none;
}
.mw-widget-dateInputWidget.oo-ui-widget-enabled .mw-widget-dateInputWidget-handle:focus {
border-color: var(--wiki-accent-color);
box-shadow: inset 0 0 0 1px var(--wiki-accent-color);
}
.mw-widget-dateInputWidget.oo-ui-widget-enabled .mw-widget-dateInputWidget-handle > .oo-ui-labelElement-label {
color: var(--wiki-content-text-color);
}
.mw-widget-calendarWidget {
border-color: var(--wiki-content-border-color);
}
.mw-widget-calendarWidget:focus {
border-color: var(--wiki-accent-color);
box-shadow: inset 0 0 0 1px var(--wiki-accent-color);
}
.mw-widget-dateInputWidget-calendar {
background-color: var(--wiki-content-background-color);
}
.mw-widget-dateInputWidget-calendar:focus {
box-shadow: inset 0 0 0 1px var(--wiki-accent-color), 0 2px 2px 0 rgba(0, 0, 0, 0.2);
}
.mw-widget-calendarWidget-header .oo-ui-labelElement-label,
.mw-widget-calendarWidget-day,
.mw-widget-calendarWidget-month,
.mw-widget-calendarWidget-year {
color: var(--wiki-content-text-color);
}
.mw-widget-calendarWidget-day-heading,
.mw-widget-calendarWidget-day-additional {
color: color-mix(in srgb, var(--wiki-content-text-color) 55%, transparent);
}
.mw-widget-calendarWidget-day-today {
box-shadow: inset 0 0 0 1px var(--wiki-accent-color);
}
.mw-widget-calendarWidget-item-selected {
background-color: color-mix(in srgb, var(--wiki-accent-color) 90%, transparent);
color: var(--wiki-accent-label-color);
}
.mw-widget-calendarWidget-item:hover {
background-color: var(--wiki-accent-color);
color: var(--wiki-accent-label-color);
}
.mw-widgets-datetime-calendarWidget:focus {
border-color: var(--wiki-content-border-color);
box-shadow: none;
}
.mw-widgets-datetime-calendarWidget-grid {
overflow-x: initial;
}
.mw-widgets-datetime-dateTimeInputWidget-handle {
background-color: var(--wiki-content-background-color);
border-color: var(--wiki-content-border-color);
color: var(--wiki-content-text-color);
}
.mw-widgets-datetime-dateTimeInputWidget.oo-ui-widget-enabled .mw-widgets-datetime-dateTimeInputWidget-handle:hover {
border-color: var(--wiki-content-border-color);
}
.mw-widgets-datetime-dateTimeInputWidget.oo-ui-widget-enabled .mw-widgets-datetime-dateTimeInputWidget-editField:hover {
background-color: var(--wiki-content-background-color);
}
.mw-widgets-datetime-calendarWidget {
background-color: var(--wiki-content-background-color);
border-color: var(--wiki-content-border-color);
}
.mw-widgets-datetime-calendarWidget-grid .mw-widgets-datetime-calendarWidget-cell.mw-widgets-datetime-calendarWidget-extra .oo-ui-buttonElement-button .oo-ui-labelElement-label {
color: color-mix(in srgb, var(--wiki-content-text-color) 55%, transparent);
}
/* Unpatrolled page creations on Special:NewPages */
.not-patrolled {
background-color: color-mix(in srgb, var(--wiki-warning-color) 16%, transparent);
}
.mw-spinner-container > div::after {
background-color: var(--wiki-content-text-color);
}
code {
/* prevents long code blocks from overflowing on mobile */
white-space: pre-wrap;
word-break: break-word; /* fallback for older browsers */
overflow-wrap: anywhere;
}
pre,
code,
.mw-code {
background-color: var(--wiki-content-background-color--secondary);
border: 1px solid var(--wiki-content-border-color);
color: var(--wiki-content-text-color);
}
.mw-templatedata-doc-param-alias {
color: var(--wiki-content-text-mix-color);
}
.mw-highlight{
overflow: unset !important;
}
.mw-highlight pre{
overflow: auto;
}
div.mw-highlight,
.skin-theme-clientpref-night div.mw-highlight {
background-color: var(--wiki-content-dynamic-color--inverted);
margin: 0.5em 0;
}
.mw-highlight pre {
background: color-mix(in srgb, var(--wiki-content-background-color--secondary) 50%, transparent);
margin: 0;
}
.mw-content-ltr.mw-highlight-lines pre,
.mw-content-ltr.content .mw-highlight-lines pre {
padding-left: 3.5em;
box-shadow: inset 2.75em 0 0 var(--wiki-content-dynamic-color--inverted);
}
.mw-highlight .hll {
background-color: color-mix(in srgb, var(--wiki-accent-color) 20%, transparent)
}
.mw-apisandbox-toolbar {
background: var(--wiki-content-background-color--secondary);
top: var(--wikigg-header-scroll-height);
}
/* special:replacetext */
.ext-replacetext-searchoptions {
background-color: transparent;
border: 1px solid var(--wiki-content-border-color);
}
.ext-replacetext-searchoptions .ext-replacetext-divider {
border-bottom: 1px solid var(--wiki-content-border-color);
}
/**/
.view-dark textarea {
background-color: var(--wiki-content-background-color--secondary);
border: 1px solid var(--wiki-content-border-color);
color: var(--wiki-content-text-color);
}
.view-dark textarea:focus-visible {
outline-color: var(--wiki-accent-color);
outline-style: solid;
}
.oo-ui-textInputWidget.oo-ui-widget-enabled textarea.oo-ui-inputWidget-input:focus {
outline: 1px solid var(--wiki-accent-color);
}
/* make math formulas legible on dark theme */
.mwe-math-fallback-image-inline,
.mwe-math-fallback-image-display,
.ve-ui-mwLatexPage-symbol {
filter: var(--wiki-icon-general-filter);
}
/* search bar */
#searchInput {
font-size: inherit; /* override UA style */
background-color: var(--wiki-navigation-search-background-color, var(--wiki-content-background-color--secondary));
background-image: var(--wiki-navigation-search-background-image, none);
background-position: var(--wiki-navigation-search-background-position, 0);
background-size: var(--wiki-navigation-search-background-size, auto);
background-repeat: var(--wiki-navigation-search-background-repeat, repeat);
border: var(--wiki-navigation-search-border-width, 1px) var(--wiki-navigation-search-border-style, solid) var(--wiki-navigation-search-border-color, var(--wiki-content-border-color));
border-radius: var(--wiki-navigation-search-border-radius, 2px);
color: var(--wiki-navigation-search-text-color, var(--wiki-content-text-color));
backdrop-filter: var(--wiki-navigation-search-backdrop-filter, none);
box-shadow: var(--wiki-navigation-search-box-shadow, none);
border-image: var(--wiki-navigation-search-border-image, none);
}
#searchInput:focus,
#searchform:hover #searchInput,
#searchform:hover #searchInput:focus {
border-color: var(--wiki-navigation-search-border-color--hover, var(--wiki-accent-color));
box-shadow: var(--wiki-navigation-search-box-shadow--hover, var(--wiki-navigation-search-box-shadow, none));
border-image: var(--wiki-navigation-search-border-image--hover, var(--wiki-navigation-search-border-image, none));
}
#searchButton {
filter: var(--wiki-icon-to-link-filter);
}
.vector-search-box-input::placeholder {
color: var(--wiki-content-text-mix-color);
}
/* Search suggestions */
.suggestions-results,
.suggestions-special {
background-color: var(--wiki-content-background-color--secondary);
}
.suggestions a.mw-searchSuggest-link,
.suggestions a.mw-searchSuggest-link:hover,
.suggestions a.mw-searchSuggest-link:active,
.suggestions a.mw-searchSuggest-link:focus {
color: var(--wiki-content-text-color);
}
.suggestions-result {
color: var(--wiki-content-link-color);
}
.suggestions-result-current {
background-color: var(--wiki-accent-color);
color: var(--wiki-accent-label-color);
}
.suggestions-special .special-label {
color: var(--wiki-content-text-mix-color);
}
.suggestions-special .special-query {
color: var(--wiki-content-text-color);
}
.suggestions-special.suggestions-result-current .special-label,
.suggestions-special.suggestions-result-current .special-query {
color: var(--wiki-accent-label-color);
}
/* search page */
fieldset#mw-searchoptions {
background-color: color-mix(in srgb, var(--wiki-content-background-color--secondary) 50%, transparent);
border-color: var(--wiki-content-border-color);
}
#mw-searchoptions .divider {
border-color: var(--wiki-content-border-color);
}
.mw-search-profile-tabs {
background-color: color-mix(in srgb, var(--wiki-content-background-color--secondary) 50%, transparent);
border: 1px solid var(--wiki-content-border-color);
margin-top: 1em;
}
.mw-search-profile-tabs div.search-types ul li.current a {
color: var(--wiki-content-text-color);
}
.results-info,
.mw-search-result-data {
color: var(--wiki-content-text-mix-color);
}
/**/
/* Login/register page */
.mw-number-text {
color: var(--wiki-content-text-mix-color);
}
.mw-body-content .mw-number-text h3 {
color: var(--wiki-content-heading-color);
}
.mw-number-text.icon-edits,
.mw-number-text.icon-pages,
.mw-number-text.icon-contributors {
position: relative;
background: none;
}
.mw-number-text.icon-edits::before,
.mw-number-text.icon-pages::before,
.mw-number-text.icon-contributors::before {
position: absolute;
width: 95px;
height: 100%;
left: 0;
top: 0;
content: '';
filter: brightness(0) var(--wiki-icon-general-filter);
}
.mw-number-text.icon-edits::before {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABLCAYAAADnAAD1AAACrUlEQVR4AWL4//8/oH170LEsiKIwXGPbtm0EY9s2g7bdjzh4oVnjyslKVZ3hSu+d5L/c0Xdx/Bt5jjCyAR3QAd9/+DhSW4oeoYmJGQdM4HWjYfQKTXTA8pZFeIgjOmA5Hkd0wDwe6TWa6IAcr4eA5RAdEC0neKWIDoieFcMRRPOAaDJ6+4uITxzwJ+KbmnjdaKkDliISPIv/gcvRxsT7kzgix7MGuBz1ooFyRIq3xOJ64ArUG0EMoMV5RI5nAJDjRV1Go1DIIL7meJKAAngc8Qn/tgoACuCNRtfRJhQyGQLkeJcI3u3oP3GzA5bjjYnwEEE0Acjx+urgEcRNVgFX1sUjdaHF9gA53sW/jScFKIC3SH8hIo5nDXAVwbtA8O6U4+kD6uPpA2rhWQNcXYh3N4HXSfAMAHK8838BTwBQF28hCpKAAnj3SvCsAa4heOdU8NQB5fGUAfXxhAEZ3lmCdz+B18Hx9ABN46kBrv1DeAtQsAZYivdAB08AMMLrJ3hBHU8BkOGdqcyMLcCbj4I1QH08YUCGd0kbTwCQ4MW1oFkR3kM5PAHAdVU8gjhPEk8AkOKRBjN481AwAxjhDRCM4Rq1EzwTgAzvGtoqiicAmMcbjRZI4wkATiP/eVe/4QU0DvXJ4gkAHq9gNEV4cdPRRtQjgycAOA51VkAOoECaiF5J4QkA7iVnuI+vgTcXBauAo1BjBeU0mZuCXlfm2gieOcCN5KzPadH7s9EF1CeJJwD4lKy2BLQM3UFDaFgSTwBwKcE5il6Q1wmeA95KQLGafuI54Ay+I4D2Fm1HY2QwBADPZdCG0EO0Wg5CAHAi6k1ce3E1fdDHAQ8TuG50Ml6F4TngGNQawTWjg2iCPoAG4I5vcG/QVrLDIJMDnvyNBYMDeg7ogA7ogJ4DOqBmnwD4A/itR9A4HwAAAABJRU5ErkJggg==) no-repeat left center;
}
.mw-number-text.icon-pages::before {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABLCAYAAADnAAD1AAAByUlEQVR4Ae3XQ6JcQRhH8Rs7mYWT2LZt25rEtpNvicGCOid51lWhX3X/B78F1ClnjUZDHChCDgVUQAVUwF+//zTbaEzwJKuqFQJOwVOYB0fSDege8RnMg8OxA47HhMhGho4YM+BHWGTXMApZP1NxAqdKuIS3DhETC5gT0cEonM+LmH7A8BHHF4zhUMyAr3DKswt4ARvCVQ8RL8FyHIoV8DqyAEbidMCIu2AFDqUbEBiLd4EiroOVcDDdgMBJWI4rNSOugpV0MOWAa2EBIq6HVXAw1YDzYQEiboVVdCDFgLNhASIegtWwP7WAM2AVXC4Z8SKsho+pBZwDCxDxIZ7hGo5iN7ZgG/bjOj61QsB5sAARxyArMA7nUw+4GuYQcaSHv/PrlAPuhDnYh8zR9ZQDnoF1+ooXuI87uIvH+JoT8ES7B1yJxZiGETnbbAHuKqCbkbiqgG5mK6Cb8QqogAqogAqogAqogAqogAqogAqogAqogAqogAqogAqogAqogAqogAqogAqogAqogAqogG0acAwmVHRLAXschDlQQAVUwKYGXIZTDo7qFnakgAqogP4ooAK+waVh5GpSAROggAqogFKOAiqgAiqg/AUjJ7hc1MT1egAAAABJRU5ErkJggg==) no-repeat left center
}
.mw-number-text.icon-contributors::before {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAAtCAYAAAA5reyyAAAEMElEQVR4AWJ4/uLFYMJsgHbtIVhzLQqg8G7btm3bfLZt2/abtG3btm3btt19tXuNU5UbnV9VPfj2PCtODh7DaOzHDdzEIQxFG6SERItoilcPq6EOpqNsrAdMiWb4CQPQEx+jMsSH13Ad6tJRtIf4UBkfoyf642c0Q8pwBSyOEYiDWpzHP8gIcelZ3IV6dBENIS5lxD84D7WIwwgUD3XActjk8jTLDnFQAiegPm1FFoiD7JgKdbAJ5UIVMA0WQ10aCnEwHBrQ/xAHQ6EuLULqUAT8EurRkxAbtXEWGtBu5IPYeBLq0RemA6bDUqhHwyE2/oIa8qHho3wp0pkM2AS3oR4dRCmIFWZADRkEsUIpHIR6dBtNTAZ8DepDEhpDLIphL9Q9X0dMYyRBfXjNZMD3oT61hFjUwHmoITtQAGLREurT+yYDvgn1IQ4NwhBwP0pALBogDurDmyYDPgL14QjKQCzK43gYjsAyOAL14RGTAcvhKNSjWUgLsciDzVBDliG9zceJWT53fFlzAYGJUI/+g9iYCjVkBMTGv1CPJkJMB/wM6sEdtILY6Aw15A+IjVa4A/Xgs1C9ym2AujQVkoznkQgN6CpaQAwd7euQynxA4EMkuTz6noAkIxu2QQNaAXHwhMujMAkfhvpz1gSogwEQF/pAA/oV4sIAqIPxkFAHLIwVUBuLkQ/iQkNchPp0BHkhLuTDYocjuVDoAwLNobCKx7MQZ0buxn9CPHgO8VBYNYOEI2AxTIPaWI3SEJdq47rPz1jZIC6VxmqHm17RUAYsjm+wB+rgDH5FZYgL/0M9egjiQmX8hjNQB3vwDYqZClgRn2I8TkM9uoxp+BY1IDayYAnUpd8hyaiBbzEdl6EencZ4fIoKXgPWQ0eswTmoIRexCz9DYFUWh6AOeiEFBFYfYYv7aK6cxRp0RL3kAjbBSsRBQ+gwykBg1SrAF+5qOAUNoTisRBNrwHeQAA2D7hAbLQL+qOoBDYMEvA0RRm3cg4bQIYxBO4iNnFgOdfAoJBntMAaHoSF0D7WtbwOmJGIHBuFtFHJxhx8HdeEEnoI4KIS3MQg7kAg1rI8w9kMN2YQ/8RByQRwUxE844GPvj0B9iAu58BD+NPwdcp8wrkEDOoG3kR3iIC0exhAcgQZwHQvwOfJDXMiOt3ECGtA1EwH3oDLERgoUxisYhv24AzUoEWexCD+iJtJBklEF+yId8A7aQywyoCK+xCJcRSI0TO5iL7qjDXIjBcTiIdwNGnAetmKjR8fQHdYL93tYiSRolDiJzqgLseiOYz62fyvmCcOUJ3EAGuV6oUi0rVD9BBpDtqJstARsj3hojFmBdNEQcDw0Rn0V6YAVcBIao2YjXSQDtoDGsDOoFMmAD0FjXLMHAYN5KJIBW+FBwADq4x40hrWLZMCKOIhEXIsxd3EdDSF+3QeCfPkMAgchOAAAAABJRU5ErkJggg==) no-repeat left center
}
/**/
/* Multimedia viewer */
.mw-mmv-post-image,
.mw-mmv-image-metadata {
background-color: var(--wiki-content-background-color);
border-color: var(--wiki-content-border-color);
color: var(--wiki-content-text-color);
}
.mw-mmv-ttf-container .mw-mmv-ttf-ellipsis {
box-shadow: -4px 6px 0 0 var(--wiki-content-background-color);
}
.mw-mmv-title-para .mw-mmv-ttf-ellipsis {
background-color: var(--wiki-content-background-color);
}
.mw-mmv-title-para .mw-mmv-ttf-ellipsis::before {
background-image: linear-gradient(to right, transparent 0%, var(--wiki-content-background-color) 100%);
}
.mw-mmv-ttf-ellipsis-container:hover .mw-mmv-ttf-container .mw-mmv-ttf-ellipsis {
background-color: var(--wiki-content-background-color--secondary);
}
.mw-mmv-ttf-container .mw-mmv-ttf-ellipsis:hover, .mw-mmv-ttf-ellipsis-container .mw-mmv-ttf-container .mw-mmv-ttf-ellipsis:hover {
background-color: color-mix(in srgb, var(--wiki-content-background-color--secondary) 95%, var(--wiki-content-dynamic-color));
}
.mw-ui-button.mw-ui-progressive:not(:disabled) {
background-color: var(--wiki-accent-color);
border-color: var(--wiki-accent-color);
color: var(--wiki-accent-label-color);
}
.mw-ui-button.mw-ui-progressive:not(:disabled):hover {
background-color: var(--wiki-accent-color--hover);
}
.skin-vector .mw-ui-button.mw-ui-progressive:hover,
.skin-vector .mw-ui-button.mw-ui-primary:disabled {
box-shadow: 0px 0px 16px rgba(0, 0, 0, 0.75) inset, 0 0 5px var(--wiki-content-border-color);
border: 2px solid var(--wiki-content-border-color);
}
.mw-ui-button.mw-ui-progressive:not(:disabled):active,
.mw-ui-button.mw-ui-progressive:not(:disabled).is-on {
background-color: var(--wiki-accent-color);
border-color: var(--wiki-accent-color);
}
.mw-ui-button.mw-ui-progressive {
box-shadow: 0px 0px 16px rgba(0, 0, 0, 0.75) inset, 0 0 5px var(--wiki-content-border-color)
}
/* possibly deprecated */
.mw-ui-input:not(:disabled) {
background-color: var(--wiki-content-background-color--secondary);
border: 1px solid var(--wiki-content-border-color);
color: var(--wiki-content-text-color);
}
.mw-ui-input:not(:disabled):hover,
.mw-ui-input:not(:disabled):focus {
background-color: var(--wiki-content-background-color--secondary);
color: var(--wiki-content-text-color);
border-color: var(--wiki-accent-color);
box-shadow: none;
}
.mw-ui-input::placeholder {
color: var(--wiki-content-text-mix-color);
}
/* end possibly deprecated */
.mw-mmv-dialog {
background-color: var(--wiki-content-background-color);
box-shadow: 0 2px 2px 0 var(--wiki-content-border-color);
}
.mw-mmv-dialog .mw-mmv-dialog-down-arrow {
background-color: var(--wiki-content-background-color);
}
.mw-mmv-options-dialog-header {
color: var(--wiki-content-text-color);
}
.mw-mmv-options-text-header,
.mw-mmv-options-text-body {
color: var(--wiki-content-text-mix-color);
}
.mw-mmv-download-pane .mw-mmv-download-area .mw-mmv-download-select-menu {
background-image: none;
}
.mw-mmv-download-pane .mw-mmv-download-area .mw-mmv-download-select-menu span {
display: none;
}
.mw-mmv-download-pane .mw-mmv-download-area .mw-mmv-download-select-menu::after {
display: inline-block;
width: 8px;
height: 100%;
content: '';
--mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2212%22 height=%2212%22 viewBox=%220 0 12 12%22%3E %3Cpath fill=%22%23000%22 fill-rule=%22evenodd%22 d=%22m2.023 3 3.49 5.953L9 3z%22 clip-rule=%22evenodd%22/%3E %3C/svg%3E") no-repeat;
--mask-size: 12px;
--mask-position: center;
-webkit-mask: var(--mask);
mask: var(--mask);
-webkit-mask-size: var(--mask-size);
mask-size: var(--mask-size);
-webkit-mask-position: var(--mask-position);
mask-position: var(--mask-position);
background-color: currentColor;
}
.mw-mmv-embed-dimensions {
color: color-mix(in srgb, var(--wiki-content-text-color) 76%, transparent);
}
.oo-ui-optionWidget-selected .mw-mmv-embed-dimensions {
color: color-mix(in srgb, var(--wiki-content-text-color) 82%, transparent);
}
.mw-mmv-download-pane .mw-mmv-download-attribution {
background-color: var(--wiki-content-background-color--secondary);
color: var(--wiki-content-text-mix-color);
}
.mw-mmv-download-pane .mw-mmv-download-attribution:hover {
background-color: var(--wiki-content-dynamic-color--inverted);
color: var(--wiki-content-text-color);
}
.mw-mmv-download-pane .mw-mmv-download-area .mw-mmv-download-preview-link,
.mw-mmv-download-pane .mw-mmv-download-attribution-cta-invite {
color: var(--wiki-content-text-mix-color);
}
.mw-ui-button.mw-ui-quiet,
.mw-ui-button.mw-ui-quiet.mw-ui-progressive,
.mw-ui-button.mw-ui-quiet.mw-ui-destructive {
color: var(--wiki-accent-color);
}
.mw-ui-button.mw-ui-progressive:not(:disabled):focus {
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 1), inset 0 0 0 2px var(--wiki-accent-color);
}
input[type="checkbox"]:active + .mw-ui-button.mw-ui-quiet,
input[type="checkbox"]:active + .mw-ui-button.mw-ui-quiet.mw-ui-progressive,
input[type="checkbox"]:active + .mw-ui-button.mw-ui-quiet.mw-ui-destructive,
.mw-ui-button.mw-ui-quiet:active,
.mw-ui-button.mw-ui-quiet.mw-ui-progressive:active,
.mw-ui-button.mw-ui-quiet.mw-ui-destructive:active,
input[type="checkbox"]:focus + .mw-ui-button.mw-ui-quiet,
input[type="checkbox"]:focus + .mw-ui-button.mw-ui-quiet.mw-ui-progressive,
input[type="checkbox"]:focus + .mw-ui-button.mw-ui-quiet.mw-ui-destructive,
.mw-ui-button.mw-ui-quiet:focus,
.mw-ui-button.mw-ui-quiet.mw-ui-progressive:focus,
.mw-ui-button.mw-ui-quiet.mw-ui-destructive:focus {
color: var(--wiki-content-text-color);
}
/**/
/* Echo */
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-optionWidget-selected > .oo-ui-buttonElement-button:hover {
color: var(--wiki-accent-label-color);
}
.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover {
color: var(--wiki-content-text-color);
}
@-webkit-keyframes unseen-fadeout-to-unread {
from {
background-color: color-mix(in srgb, var(--wiki-accent-color) 20%, transparent);
}
to {
background-color: var(--wiki-content-background-color--secondary);
}
}
@keyframes unseen-fadeout-to-unread {
from {
background-color: color-mix(in srgb, var(--wiki-accent-color) 20%, transparent);
}
to {
background-color: var(--wiki-content-background-color--secondary);
}
}
@-webkit-keyframes unseen-fadeout-to-read {
from {
background-color: color-mix(in srgb, var(--wiki-accent-color) 20%, transparent);
}
to {
background-color: var(--wiki-content-background-color);
}
}
@keyframes unseen-fadeout-to-read {
from {
background-color: color-mix(in srgb, var(--wiki-accent-color) 20%, transparent);
}
to {
background-color: var(--wiki-content-background-color);
}
}
.oo-ui-popupWidget-anchored-top .oo-ui-popupWidget-anchor:before {
border-bottom-color: var(--wiki-content-border-color);
}
.oo-ui-popupWidget-anchored-top .oo-ui-popupWidget-anchor:after {
border-bottom-color: var(--wiki-content-background-color--secondary);
}
.client-js .mw-echo-special-nojs {
filter: var(--wiki-icon-general-filter)
}
/**/
/* codex fixes */
.cdx-checkbox__icon {
background-color: color-mix(in srgb, var(--wiki-accent-color) 5%, transparent);
}
.mw-echo-ui-toggleReadCircleButtonWidget:hover .mw-echo-ui-toggleReadCircleButtonWidget-circle {
background-color: var(--wiki-accent-color--hover);
}
.mw-echo-ui-toggleReadCircleButtonWidget-circle-unread {
background-color: transparent;
}
.mw-echo-ui-toggleReadCircleButtonWidget:hover .mw-echo-ui-toggleReadCircleButtonWidget-circle-unread {
background-color: var(--wiki-content-text-mix-color-95);
}
/**/
/* make the upload form and file pages responsive */
#wpDestFile,
#wpUploadDescription,
#wpLicense,
#wpUploadFile,
#multiFileCategory {
/* max-width does not work here, but setting width has negligible side effects */
width:100%;
box-sizing:border-box;
}
#mw_metadata {
max-width:100%;
}
/*************************
* End Vector theme fixes *
**************************/
/************************
* Theme-based Scribunto *
*************************/
.mw-scribunto-console-fieldset,
.mw-scribunto-message,
.mw-scribunto-input,
.mw-scribunto-print,
.mw-scribunto-normalOutput {
color: var(--wiki-content-text-color);
}
/****************
* End Scribunto *
*****************/
/***************************
* Theme-based VisualEditor *
****************************/
.ve-activated .vector-menu-tabs .selected {
box-shadow: none;
}
.ve-init-mw-progressBarWidget {
background-color: var(--wiki-content-background-color);
border-color: var(--wiki-accent-color);
box-shadow: 0 1px 1px color-mix(in srgb, var(--wiki-content-dynamic-color) 15%, transparent);
}
.ve-init-mw-progressBarWidget-bar {
background-color: var(--wiki-accent-color);
}
.ve-init-mw-desktopArticleTarget-toolbarPlaceholder-bar {
border-bottom-color: var(--wiki-content-border-color);
}
.ve-init-mw-desktopArticleTarget-toolbarPlaceholder-floating .ve-init-mw-desktopArticleTarget-toolbarPlaceholder-bar {
top: var(--wikigg-header-scroll-height, 0);
background: var(--wiki-content-background-color);
}
div.ve-ce-branchNode {
border-color: var(--wiki-content-border-color);
}
.ve-ce-focusableNode-highlight {
background: var(--wiki-accent-color);
box-shadow: inset 0 0 0 1px var(--wiki-accent-color);
}
.ve-ce-surface-highlights-focused .ve-ce-focusableNode-highlights {
opacity: 0.25;
}
.ve-ce-branchNode-blockSlug, .ve-ce-branchNode-newSlug:not(.ve-ce-branchNode-newSlug-open) {
outline-color: var(--wiki-accent-color);
background-color: color-mix(in srgb, var(--wiki-content-dynamic-color--inverted) 75%, transparent);
}
figure[typeof~='mw:File/Thumb'],
figure[typeof~='mw:File/Frame'],
figure[typeof~='mw:Image/Thumb'],
figure[typeof~='mw:Video/Thumb'],
figure[typeof~='mw:Audio/Thumb'],
figure[typeof~='mw:Image/Frame'],
figure[typeof~='mw:Video/Frame'],
figure[typeof~='mw:Audio/Frame'] {
border-color: var(--wiki-content-border-color);
background-color: var(--wiki-content-background-color--secondary);
}
figure[typeof~='mw:File/Thumb'] > a:first-child > *:first-child:not(.mw-broken-media),
figure[typeof~='mw:File/Frame'] > a:first-child > *:first-child:not(.mw-broken-media),
figure[typeof~='mw:Image/Thumb'] > a:first-child > *:first-child:not(.mw-broken-media),
figure[typeof~='mw:Video/Thumb'] > a:first-child > *:first-child:not(.mw-broken-media),
figure[typeof~='mw:Audio/Thumb'] > a:first-child > *:first-child:not(.mw-broken-media),
figure[typeof~='mw:Image/Frame'] > a:first-child > *:first-child:not(.mw-broken-media),
figure[typeof~='mw:Video/Frame'] > a:first-child > *:first-child:not(.mw-broken-media),
figure[typeof~='mw:Audio/Frame'] > a:first-child > *:first-child:not(.mw-broken-media),
figure[typeof~='mw:File/Thumb'] > span:first-child > *:first-child:not(.mw-broken-media),
figure[typeof~='mw:File/Frame'] > span:first-child > *:first-child:not(.mw-broken-media),
figure[typeof~='mw:Image/Thumb'] > span:first-child > *:first-child:not(.mw-broken-media),
figure[typeof~='mw:Video/Thumb'] > span:first-child > *:first-child:not(.mw-broken-media),
figure[typeof~='mw:Audio/Thumb'] > span:first-child > *:first-child:not(.mw-broken-media),
figure[typeof~='mw:Image/Frame'] > span:first-child > *:first-child:not(.mw-broken-media),
figure[typeof~='mw:Video/Frame'] > span:first-child > *:first-child:not(.mw-broken-media),
figure[typeof~='mw:Audio/Frame'] > span:first-child > *:first-child:not(.mw-broken-media) {
border-color: var(--wiki-content-border-color);
background: var(--wiki-content-background-color--secondary);
}
figure[typeof~='mw:File/Thumb'] > figcaption,
figure[typeof~='mw:File/Frame'] > figcaption,
figure[typeof~='mw:Image/Thumb'] > figcaption,
figure[typeof~='mw:Video/Thumb'] > figcaption,
figure[typeof~='mw:Audio/Thumb'] > figcaption,
figure[typeof~='mw:Image/Frame'] > figcaption,
figure[typeof~='mw:Video/Frame'] > figcaption,
figure[typeof~='mw:Audio/Frame'] > figcaption {
background-color: var(--wiki-content-background-color--secondary);
border-color: var(--wiki-content-border-color);
}
.ve-ui-specialCharacterPage-character,
.oo-ui-toolbar-position-top .ve-ui-toolbarDialog-position-above,
.oo-ui-bookletLayout > .oo-ui-menuLayout-menu,
.ve-ui-mwTwoPaneTransclusionDialogLayout > .oo-ui-menuLayout-menu,
.ve-ui-specialCharacterPage-character:hover {
border-color: var(--wiki-content-border-color);
}
.ve-ui-specialCharacterPage-character:hover {
box-shadow: inset 0 0 1px 1px var(--wiki-accent-color);
}
.oo-ui-listToolGroup-tools .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-title,
.oo-ui-popupToolGroup-tools .oo-ui-tool-link .oo-ui-tool-accel {
color: var(--wiki-content-text-mix-color);
}
.oo-ui-barToolGroup-tools.oo-ui-toolGroup-enabled-tools .oo-ui-tool.oo-ui-widget-disabled.oo-ui-flaggedElement-primary > .oo-ui-tool-link .oo-ui-tool-title,
.oo-ui-barToolGroup-tools.oo-ui-toolGroup-disabled-tools .oo-ui-tool.oo-ui-flaggedElement-primary > .oo-ui-tool-link .oo-ui-tool-title {
color: color-mix(in srgb, var(--wiki-content-dynamic-color--inverted) 78%, transparent);
}
.ve-activated .ve-init-mw-desktopArticleTarget-originalContent #catlinks:hover {
background: color-mix(in srgb, var(--wiki-content-link-color) 10%, transparent);
}
.oo-ui-tabSelectWidget-frameless .oo-ui-tabOptionWidget.oo-ui-optionWidget-selected {
color: var(--wiki-accent-color);
box-shadow: inset 0 -2px 0 0 var(--wiki-accent-color);
}
.oo-ui-tabOptionWidget {
color: var(--wiki-content-text-mix-color);
}
.oo-ui-tabSelectWidget-frameless .oo-ui-tabOptionWidget.oo-ui-widget-enabled:not(.oo-ui-optionWidget-selected):hover {
color: var(--wiki-accent-color--hover);
box-shadow: inset 0 -2px 0 0 var(--wiki-accent-color--hover);
}
.oo-ui-tabSelectWidget-frameless .oo-ui-tabOptionWidget.oo-ui-widget-enabled:not(.oo-ui-optionWidget-selected):active {
color: var(--wiki-content-text-color);
box-shadow: inset 0 -2px 0 0 var(--wiki-accent-color--hover);
}
.oo-ui-tabSelectWidget-frameless {
box-shadow: inset 0 -1px 0 0 var(--wiki-content-border-color);
}
.oo-ui-textInputWidget.oo-ui-widget-enabled.oo-ui-flaggedElement-invalid .oo-ui-inputWidget-input {
border-color: var(--wiki-alert-color);
}
.ve-ce-linkAnnotation.ve-ce-annotation-active {
box-shadow: 0 0 0 1px color-mix(in srgb, var(--wiki-content-link-color) 20%, transparent);
background-color: color-mix(in srgb, var(--wiki-content-link-color) 10%, transparent);
}
.ve-ui-mwInternalLinkContextItem-withImage > .oo-ui-iconElement.oo-ui-iconElement-icon {
background-color: color-mix(in srgb, var(--wiki-content-text-mix-color-95) 90%, var(--wiki-content-dynamic-color));
border-color: color-mix(in srgb, var(--wiki-content-text-mix-color-95) 90%, var(--wiki-content-dynamic-color));
filter: unset;
}
.mw-widget-titleWidget-menu-withImages .mw-widget-titleOptionWidget.oo-ui-iconElement > .oo-ui-iconElement-icon.mw-widget-titleOptionWidget-hasImage {
filter: unset;
}
.mw-widget-titleWidget-menu-withImages .mw-widget-titleOptionWidget.oo-ui-iconElement > .oo-ui-iconElement-icon:not(.mw-widget-titleOptionWidget-hasImage) {
background-color: color-mix(in srgb, var(--wiki-content-text-mix-color-95) 90%, var(--wiki-content-dynamic-color));
filter: unset;
}
.ve-ui-desktopContext .ve-ui-linkContextItem .ve-ui-linkContextItem-label .ve-ui-linkContextItem-label-preview {
color: var(--wiki-content-text-mix-color);
}
.ve-ui-toolbarDialog {
background-color: color-mix(in srgb, var(--wiki-content-dynamic-color) 5%, transparent);
}
.ve-ce-languageAnnotation {
background-color: color-mix(in srgb, var(--wiki-content-dynamic-color) 20%, transparent);
border-color: var(--wiki-content-link-color);
}
.mw-widget-mediaResultWidget-overlay {
box-shadow: inset 0 0 0 1px var(--wiki-content-border-color);
}
.mw-widget-mediaResultWidget .mw-widget-mediaResultWidget-nameLabel {
color: #fff;
}
.oo-ui-processDialog-actions-safe .oo-ui-widget-enabled.oo-ui-iconElement:not(.oo-ui-labelElement) > .oo-ui-buttonElement-button {
background-color: transparent;
border-right-color: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent);
}
.oo-ui-selectFileWidget-dropTarget {
background-color: var(--wiki-content-background-color);
border-color: var(--wiki-content-border-color);
}
.oo-ui-selectFileWidget.oo-ui-widget-enabled.oo-ui-selectFileWidget-dropTarget {
background-color: var(--wiki-content-background-color);
}
.oo-ui-selectFileWidget.oo-ui-widget-enabled.oo-ui-selectFileWidget-dropTarget:hover {
border-color: var(--wiki-content-text-mix-color);
}
.oo-ui-selectFileWidget.oo-ui-widget-enabled.oo-ui-selectFileWidget-canDrop.oo-ui-selectFileWidget-dropTarget,
.oo-ui-selectFileWidget.oo-ui-widget-enabled.oo-ui-selectFileWidget-canDrop .oo-ui-selectFileInputWidget-info > .oo-ui-inputWidget-input {
background-color: color-mix(in srgb, var(--wiki-accent-color) 10%, transparent);
color: var(--wiki-accent-color);
}
.oo-ui-selectFileWidget.oo-ui-widget-disabled.oo-ui-selectFileWidget-dropTarget,
.oo-ui-selectFileWidget.oo-ui-selectFileInputWidget-empty.oo-ui-widget-disabled.oo-ui-selectFileWidget-dropTarget {
background-color: var(--wiki-content-text-mix-color-95);
border-color: var(--wiki-content-dynamic-color--secondary);
}
.mw-upload-bookletLayout-filePreview {
background-color: var(--wiki-content-background-color--secondary);
}
.ve-ui-mwMediaDialog-panel-imageinfo-details {
color: var(--wiki-content-text-mix-color);
}
.oo-ui-textInputWidget.oo-ui-widget-disabled .oo-ui-inputWidget-input {
-webkit-text-fill-color: color-mix(in srgb, var(--wiki-content-text-color) 50%, transparent);
}
.oo-ui-optionWidget.oo-ui-widget-disabled {
color: var(--wiki-content-text-mix-color);
}
.ve-ui-mwLanguagesPage-languages-table th,
.ve-ui-mwLanguagesPage-languages-table td {
border-bottom-color: var(--wiki-content-border-color);
}
.ve-ui-mwLanguagesPage-languages-table tr:nth-child(even) td {
background: var(--wiki-content-background-color);
}
.ve-ui-mwLanguagesPage-languages-table tr:nth-child(odd) td {
background: color-mix(in srgb, var(--wiki-content-dynamic-color--secondary) 5%, transparent);
}
.ve-ui-targetWidget {
border-color: var(--wiki-content-border-color);
}
.ve-ui-targetWidget:not(.oo-ui-pendingElement-pending) {
background: var(--wiki-content-background-color);
}
.ve-ui-targetWidget-focused {
border-color: var(--wiki-accent-color);
box-shadow: inset 0 0 0 1px var(--wiki-accent-color);
}
.ve-ui-mwTransclusionOutlineTemplateWidget-sticky {
background-color: var(--wiki-content-background-color);
}
.ve-ui-mwTransclusionOutlineTemplateWidget .ve-ui-mwTransclusionOutlineParameterWidget.oo-ui-optionWidget-highlighted {
color: var(--wiki-content-dynamic-color);
}
.ve-ui-mwTransclusionOutlineTemplateWidget .ve-ui-mwTransclusionOutlineParameterWidget.ve-ui-mwTransclusionOutlineParameterWidget-activePage,
.ve-ui-mwTransclusionOutlineTemplateWidget .ve-ui-mwTransclusionOutlineParameterWidget.ve-ui-mwTransclusionOutlineParameterWidget-activePage:hover,
.ve-ui-mwTransclusionOutlineTemplateWidget .ve-ui-mwTransclusionOutlineParameterWidget.ve-ui-mwTransclusionOutlineParameterWidget-activePage.oo-ui-optionWidget-highlighted {
color: var(--wiki-accent-color);
}
.ve-ui-mwTransclusionOutlineTemplateWidget-no-template-parameters {
color: var(--wiki-content-text-mix-color);
}
.ve-ui-mwTemplatePage-description {
color: var(--wiki-content-text-mix-color);
}
.ve-ui-mwParameterPage-doc-required,
.ve-ui-mwParameterPage-doc-deprecated,
.ve-ui-mwParameterPage-inlineDescription .ve-ui-mwParameterPage-doc-example {
color: var(--wiki-content-text-mix-color);
}
.ve-ui-expandableContent-fade {
background: linear-gradient(to right, transparent 0, var(--wiki-content-background-color) 90%);
}
.ve-ui-expandableContent-toggle {
background-color: var(--wiki-content-background-color);
}
.ve-ui-mwParameterPage-undocumentedLabel {
color: var(--wiki-content-text-mix-color);
}
.oo-ui-fieldLayout-disabled > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header > .oo-ui-labelElement-label {
color: var(--wiki-content-text-mix-color);
}
.ve-ui-mwLatexDialog-content .oo-ui-bookletLayout-stackLayout h3 {
color: var(--wiki-content-text-mix-color);
}
.ve-ui-mwLatexPage-symbol {
border-color: var(--wiki-content-border-color);
}
.ve-ui-mwGalleryDialog-highlighted-image {
background-color: var(--wiki-content-background-color--secondary);
}
.ve-ui-mwHelpListToolGroup-tools-footer {
border-color: var(--wiki-content-border-color);
}
.ve-ui-mwHelpListToolGroup-version-link,
.ve-ui-mwHelpListToolGroup-version-date,
.ve-ui-mwHelpPopupTool-version-label,
.ve-ui-mwHelpPopupTool-version-link,
.ve-ui-mwHelpPopupTool-version-date {
color: var(--wiki-content-text-mix-color);
}
.ve-ui-mwSaveDialog-summary {
background-color: var(--wiki-content-background-color);
}
.ve-ui-mwSaveDialog-options {
background-color: var(--wiki-content-background-color--secondary);
border-color: var(--wiki-content-border-color);
}
.ve-ui-mwSaveDialog-license {
color: var(--wiki-content-text-mix-color);
}
.oo-ui-processDialog .oo-ui-actionWidget:not(.oo-ui-flaggedElement-progressive):not(.oo-ui-flaggedElement-destructive) > .oo-ui-buttonElement-button:hover,
.oo-ui-processDialog .oo-ui-actionWidget:not(.oo-ui-flaggedElement-progressive):not(.oo-ui-flaggedElement-destructive) > .oo-ui-buttonElement-button:active {
border-right-color: var(--wiki-accent-color);
border-left-color: var(--wiki-accent-color);
}
.ve-ui-debugBar {
border-color: var(--wiki-content-border-color);
}
.ve-ui-debugBar-commands-divider {
border-color: var(--wiki-content-border-color);
}
.ve-ui-debugBar-dump > table {
background-color: var(--wiki-content-background-color--secondary);
border-color: var(--wiki-content-border-color);
}
.ve-ui-debugBar-dump td {
background-color: var(--wiki-content-background-color);
}
.ve-ui-debugBar-dump th {
color: color-mix(in srgb, var(--wiki-content-text-color) 80%, transparent);
text-shadow: 0 1px 1px var(--wiki-content-dynamic-color--inverted);
}
.ve-ui-debugBar-dump ol {
color: color-mix(in srgb, var(--wiki-content-text-color) 60%, transparent);
}
.ve-ui-debugBar-dump li .ve-ui-debugBar-dump-element,
.ve-ui-debugBar-dump li .ve-ui-debugBar-dump-char,
.ve-ui-debugBar-dump li .ve-ui-debugBar-dump-achar {
background-color: var(--wiki-content-background-color--secondary);
color: var(--wiki-content-dynamic-color);
text-shadow: 0 1px 1px var(--wiki-content-dynamic-color--inverted);
}
.ve-ui-debugBar-dump li .ve-ui-debugBar-dump-element {
background-color: color-mix(in srgb, var(--wiki-accent-color) 20%, transparent);
}
.ve-ui-debugBar-dump li .ve-ui-debugBar-dump-char {
background-color: color-mix(in srgb, var(--wiki-success-color) 20%, transparent);
}
.ve-ui-debugBar-dump li .ve-ui-debugBar-dump-achar {
background-color: color-mix(in srgb, var(--wiki-warning-color) 20%, transparent);
}
.ve-ui-debugBar-dump li .ve-ui-debugBar-dump-note {
color: var(--wiki-content-text-mix-color);
}
.ve-ui-debugBar-filibuster {
background-color: var(--wiki-content-background-color--secondary);
border-color: var(--wiki-content-border-color);
}
.ve-ui-debugBar-transactions > ol > li {
border-color: var(--wiki-content-border-color);
}
/*******************
* End VisualEditor *
********************/
/**************************
* Theme-based AbuseFilter *
***************************/
table.mw-abuselog-details {
background: var(--wiki-content-background-color);
border-color: var(--wiki-content-border-color);
}
table.mw-abuselog-details th,
table.mw-abuselog-details td,
div.mw-abusefilter-editor {
border-color: var(--wiki-content-border-color);
}
table.mw-abuselog-details th {
background: var(--wiki-content-background-color--secondary);
}
body td.mw-abusefilter-history-changed {
background-color: color-mix(in srgb, var(--wiki-alert-color) 20%, transparent);
}
/******************
* End AbuseFilter *
*******************/
/************************************
* Theme-based Special:MultiPageEdit *
*************************************/
:root {
--jexcel-border-color: var(--wiki-content-border-color); /* this is defined by the extension but does not seem to be used anywhere. We override it just in case *shrug* */
}
.jexcel,
.jexcel_container.fullscreen .jexcel_content {
background-color: var(--wiki-content-background-color);
border-bottom-color: var(--wiki-content-border-color);
border-right-color: var(--wiki-content-border-color);
}
table.jexcel > tbody > tr > td:first-child,
table.jexcel > thead,
table.jexcel > thead > tr > td,
table.jexcel > tbody > tr.selected > td:first-child,
table.jexcel > thead > tr > td.selected {
background-color: var(--wiki-content-background-color--secondary);
}
table.jexcel > tbody > tr.selected > td:first-child,
table.jexcel > thead > tr > td.selected {
background-color: color-mix(in srgb, var(--wiki-accent-color) 10%, transparent);
}
table.jexcel > thead > tr > td {
border-bottom-color: var(--wiki-content-border-color);
}
.jexcel > thead > tr > td.arrow-up,
.jexcel > thead > tr > td.arrow-down {
background: none;
}
.jexcel > thead > tr > td.arrow-up::after,
.jexcel > thead > tr > td.arrow-down::after {
display: inline-block;
position: absolute;
right: 0;
top: 0;
background-repeat: no-repeat;
background-position: center right 5px;
width: 22px;
height: 100%;
content: '';
filter: brightness(50%) var(--wiki-icon-general-filter);
}
.jexcel > thead > tr > td.arrow-up::after {
background-image: url("data:image/svg+xml,%0A%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' d='M0 0h24v24H0V0z'/%3E%3Cpath d='M7 14l5-5 5 5H7z' fill='gray'/%3E%3C/svg%3E");
}
.jexcel > thead > tr > td.arrow-down::after {
background-image: url("data:image/svg+xml,%0A%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' d='M0 0h24v24H0V0z'/%3E%3Cpath d='M7 10l5 5 5-5H7z' fill='gray'/%3E%3C/svg%3E");
}
.jexcel > thead > tr:nth-child(2) > td {
z-index: 1; /* prevents overlapping the headings after scrolling on tall tables */
}
.jexcel > tbody > tr > td {
border-top-color: var(--wiki-content-text-mix-color-95);
border-bottom-color: var(--wiki-content-text-mix-color-95);
}
.jexcel > tbody > tr > td.readonly {
color: var(--wiki-content-text-mix-color);
}
.jexcel_content {
scrollbar-color: var(--wiki-content-text-mix-color) transparent;
/* we need this important to override inline styling */
box-shadow: var(--wiki-content-dynamic-color--secondary--inverted) 2px 2px 5px 0.1px !important;
}
.jexcel .highlight {
background-color: color-mix(in srgb, var(--wiki-content-dynamic-color) 5%, transparent);
}
.jexcel .highlight-top {
border-top-color: var(--wiki-content-text-mix-color);
box-shadow: 0px -1px var(--wiki-content-dynamic-color--secondary--inverted);
}
.jexcel .highlight-left {
border-left-color: var(--wiki-content-text-mix-color);
box-shadow: -1px 0px var(--wiki-content-dynamic-color--secondary--inverted);
}
.jexcel .highlight-top.highlight-left {
box-shadow: -1px -1px var(--wiki-content-dynamic-color--secondary--inverted);
}
.jexcel .highlight-right {
border-right-color: var(--wiki-content-text-mix-color);
}
.jexcel .highlight-bottom {
border-bottom-color: var(--wiki-content-text-mix-color);
}
.jexcel .jexcel_column_filter {
background: none;
}
.jexcel .jexcel_column_filter::after {
display: inline-block;
position: absolute;
right: 0;
top: 0;
background-repeat: no-repeat;
background-position: top 50% right 5px;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='gray' width='18px' height='18px'%3E%3Cpath d='M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");
width: 20px;
height: 100%;
content: '';
filter: brightness(50%) var(--wiki-icon-general-filter);
}
.jexcel_pagination > div > div {
background-color: var(--wiki-accent-color);
/* we need this important to override a built-in one */
color: var(--wiki-accent-label-color) !important;
}
.jexcel_page_selected {
background: linear-gradient(to bottom, var(--wiki-accent-color) 0%, var(--wiki-accent-color--hover) 100%);
/* we need this important to override a built-in one */
border: 1px solid var(--wiki-content-border-color) !important;
}
/****************************
* End Special:MultiPageEdit *
*****************************/
/***********************
* Theme-based msupload *
************************/
#msupload-div,
#msupload-list .file {
background-color: var(--wiki-content-background-color);
border-color: var(--wiki-content-border-color);
}
#msupload-select {
filter: brightness(0) var(--wiki-icon-to-link-filter);
}
#msupload-dropzone {
border-color: var(--wiki-content-border-color);
color: var(--wiki-content-text-color);
}
.drop-over {
background-color: var(--wiki-accent-color);
color: var(--wiki-accent-label-color) !important;
}
#msupload-bottom {
border-color: var(--wiki-content-border-color);
}
#msupload-bottom #msupload-files {
padding-left: 0;
background: none;
}
#msupload-bottom #msupload-files::before {
display: inline-block;
background: url(/extensions/MsUpload/resources/images/msu-upload-icon.png?bdd61) no-repeat 0 0;
background-position: left center;
height: 22px;
width: 25px;
content: '';
vertical-align: top;
filter: var(--wiki-icon-general-filter);
}
#msupload-list .file .file-size {
color: var(--wiki-content-text-mix-color);
}
#msupload-div a {
color: var(--wiki-content-link-color);
}
#msupload-list .file .file-name:hover {
background-color: var(--wiki-content-dynamic-color--inverted);
}
#msupload-list .file .file-name-input {
background: var(--wiki-content-dynamic-color--inverted);
}
#msupload-list .file .file-warning {
color: var(--wiki-warning-color);
}
/***************************
* End theme-based msupload *
****************************/
/*****************************
* Theme-based commentstreams *
******************************/
.cs-title-edit-field {
border-color: var(--wiki-accent-color);
}
.cs-title-edit-field::placeholder,
.view-dark .cs-body-edit-field::placeholder {
color: var(--wiki-content-text-mix-color);
}
.cs-edit-box,
.cs-expanded .cs-comment-header {
background-color: var(--wiki-content-background-color--secondary);
border-color: var(--wiki-content-border-color);
}
.cs-target-comment .cs-comment-header {
border-color: var(--wiki-accent-color);
}
.cs-comment-author a {
color: var(--wiki-content-link-color);
}
.cs-comment-details {
color: color-mix(in srgb, var(--wiki-content-text-color) 95%, transparent);
}
.cs-comment-author-anonymous {
color: color-mix(in srgb, var(--wiki-content-text-color) 95%, transparent);
}
.cs-comment {
border: 1px solid var(--wiki-content-border-color);
}
.cs-comment-body {
padding: 0 5px;
}
/*********************************
* End theme-based commentstreams *
**********************************/
/************************
* Theme-based checkuser *
*************************/
.mw-datatable.ext-checkuser-investigate-table tr:hover td {
background-color: var(--wiki-content-background-color);
}
.mw-datatable.ext-checkuser-investigate-table th {
background-color: var(--wiki-content-background-color--secondary);
}
.ext-checkuser-investigate-table.mw-datatable.ext-checkuser-investigate-table-pinned .ext-checkuser-investigate-table-row-pinned td,
.ext-checkuser-investigate-table.mw-datatable.ext-checkuser-investigate-table-pinned .ext-checkuser-investigate-table-row-pinned-data-match td,
.ext-checkuser-investigate-table.mw-datatable:not(.ext-checkuser-investigate-table-pinned) .ext-checkuser-investigate-table-row-hover-data-match td,
.ext-checkuser-investigate-table.mw-datatable:not(.ext-checkuser-investigate-table-pinned) tr:hover td {
background-color: color-mix(in srgb, var(--wiki-warning-color) 10%, transparent);
}
.ext-checkuser-investigate-table.mw-datatable.ext-checkuser-investigate-table-pinned .ext-checkuser-investigate-table-row-pinned td.ext-checkuser-investigate-table-cell-pinned,
.ext-checkuser-investigate-table.mw-datatable.ext-checkuser-investigate-table-pinned .ext-checkuser-investigate-table-row-pinned-data-match td.ext-checkuser-investigate-table-cell-pinned,
.ext-checkuser-investigate-table.mw-datatable.ext-checkuser-investigate-table-pinned .ext-checkuser-investigate-table-row-pinned td.ext-checkuser-investigate-table-cell-pinned-data-match,
.ext-checkuser-investigate-table.mw-datatable.ext-checkuser-investigate-table-pinned .ext-checkuser-investigate-table-row-pinned-data-match td.ext-checkuser-investigate-table-cell-pinned-data-match,
.ext-checkuser-investigate-table.mw-datatable:not(.ext-checkuser-investigate-table-pinned) tr td.ext-checkuser-investigate-table-cell-hover-data-match,
.ext-checkuser-investigate-table.mw-datatable:not(.ext-checkuser-investigate-table-pinned) tr td:hover.ext-checkuser-investigate-table-cell-pinnable {
background-color: color-mix(in srgb, var(--wiki-warning-color) 40%, transparent);
}
.ext-checkuser-investigate-copy-message.oo-ui-messageWidget.oo-ui-messageWidget-block.oo-ui-flaggedElement-notice {
background-color: var(--wiki-content-background-color--secondary);
border-color: var(--wiki-content-border-color);
}
.mw-special-Investigate .ext-checkuser-investigate-subtitle-fieldset {
background-color: var(--wiki-content-background-color--secondary);
}
/****************
* End checkuser *
*****************/
/***************************
* Theme-based SearchDigest *
****************************/
.searchdigest-stats-table {
border-color: var(--wiki-content-border-color);
border-collapse: collapse;
}
.searchdigest-stats-table thead th,
.searchdigest-stats-table tr:not(:last-child) th,
.searchdigest-stats-table tr:not(:last-child) td {
border-bottom-color: var(--wiki-content-border-color);
}
.searchdigest-stats-table thead th:last-child,
.searchdigest-stats-table td {
border-left-color: var(--wiki-content-border-color);
}
.searchdigest-stats-table thead tr {
background: var(--wiki-content-background-color--secondary);
}
/*******************
* End SearchDigest *
********************/
/****************************
* Extension:RelatedArticles *
*****************************/
.client-js .read-more-container {
min-height: unset;
}
@media (min-width: 1000px) {
.client-js .read-more-container {
min-height: calc(
80px/*card height*/
+ 10px/*card margin*/
+ 1em/*container padding*/
+ 0.3em/*card-list margin*/
+ 0.8em/*h2 font-size*/
+ 1em/*h2 padding*/
+ 0.6em/*h2 margin*/
+ 1px /*container border*/
);
}
}
.ext-related-articles-card-list .ext-related-articles-card {
background-color: var(--wiki-content-background-color);
}
.ext-related-articles-card-list .ext-related-articles-card,
.ext-related-articles-card-list .ext-related-articles-card + .ext-related-articles-card { /* your guess is as good as mine for why they did this */
border-color: color-mix(in srgb, var(--wiki-content-border-color) 20%, transparent);
}
.ext-related-articles-card-list .ext-related-articles-card-thumb {
background-color: var(--wiki-content-background-color--secondary);
}
.ra-read-more h2 {
color: var(--wiki-body-dynamic-color--secondary);
}
.ext-related-articles-card-list h3 a {
color: var(--wiki-content-heading-color);
}
.ext-related-articles-card-list h3::after {
background-image: linear-gradient(to right, transparent, var(--wiki-content-background-color) 50%);
}
.ext-related-articles-card-list .ext-related-articles-card-extract {
color: color-mix(in srgb, var(--wiki-content-text-color) 50%, transparent);
}
/* removed background image and use a mask image instead */
.ext-related-articles-card-list .ext-related-articles-card-thumb-placeholder {
position: relative;
background-image: none;
}
.ext-related-articles-card-list .ext-related-articles-card-thumb-placeholder::after {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
content: '';
--mask-image: url("/extensions/RelatedArticles/resources/ext.relatedArticles.readMore/article.svg?3c572");
--mask-size: 40px;
--mask-repeat: no-repeat;
--mask-position: center;
-webkit-mask: var(--mask-image);
mask: var(--mask-image);
-webkit-mask-size: var(--mask-size);
mask-size: var(--mask-size);
-webkit-mask-repeat: var(--mask-repeat);
mask-repeat: var(--mask-repeat);
-webkit-mask-position: var(--mask-position);
mask-position: var(--mask-position);
background-color: color-mix(in srgb, var(--wiki-content-text-color) 75%, transparent);
}
/**/
/* this simulates mw-footer having a top border */
.read-more-container {
border-bottom: var(--wiki-content-border-width, 1px) solid var(--wiki-content-border-color);
}
@media screen and (min-width: 720px) {
.read-more-container {
margin-right: 1em;
}
}
/********************************
* End Extension:RelatedArticles *
*********************************/
/*******************
* Extension:Popups *
********************/
.mwe-popups {
box-shadow: 0 30px 90px -20px rgba(0, 0, 0, 0.3), 0 0 1px 1px color-mix(in srgb, var(--wiki-content-border-color) 5%, transparent);
}
.mwe-popups,
.mwe-popups .mwe-popups-container {
background-color: var(--wiki-content-background-color);
color: var(--wiki-content-text-color);
}
.mwe-popups .mwe-popups-extract {
color: var(--wiki-content-text-color);
}
.mwe-popups .mwe-popups-extract[dir="ltr"]::after {
background-image: linear-gradient(to right, transparent, var(--wiki-content-background-color) 50%);
}
.mwe-popups.flipped-y::before,
.mwe-popups.flipped-x-y::before,
.mwe-popups.mwe-popups-image-pointer::before,
.mwe-popups.mwe-popups-image-pointer.flipped-x::before,
.mwe-popups.mwe-popups-no-image-pointer::before,
.mwe-popups.flipped-x.mwe-popups-is-tall::before,
.mwe-popups.flipped-x-y.mwe-popups-is-tall::before {
border-color: var(--wiki-content-border-color);
}
.mwe-popups.flipped-y::after,
.mwe-popups.flipped-x-y::after,
.mwe-popups.mwe-popups-image-pointer::after,
.mwe-popups.mwe-popups-image-pointer.flipped-x::after,
.mwe-popups.mwe-popups-no-image-pointer::after,
.mwe-popups.flipped-x-y.mwe-popups-is-tall::after {
border-color: var(--wiki-content-background-color);
}
.popups-icon {
position: relative;
background-position: center;
background-repeat: no-repeat;
background-size: calc(max(1.4285714em, 20px));
min-width: 20px;
min-height: 20px;
width: 1.4285714em;
height: 1.4285714em;
display: inline-block;
vertical-align: text-bottom;
}
.popups-icon--preview-generic,
.popups-icon--settings,
.popups-icon--infoFilled,
.popups-icon--infoFilled:lang(ar),
.popups-icon--close,
.popups-icon--reference-generic,
.popups-icon--reference-book,
.popups-icon--preview-disambiguation {
background-image: none;
}
.popups-icon::after {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
content: '';
-webkit-mask-image: var(--mask-image, none);
mask-image: var(--mask-image, none);
-webkit-mask-repeat: var(--mask-repeat, no-repeat);
mask-repeat: var(--mask-repeat, no-repeat);
-webkit-mask-size: var(--mask-size, calc(max(1.4285714em, 20px)));
mask-size: var(--mask-size, calc(max(1.4285714em, 20px)));
-webkit-mask-position: var(--mask-position, center);
mask-position: var(--mask-position, center);
background-color: var(--mask-color, currentColor);
}
.popups-icon--preview-generic::after {
--mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2220%22 height=%2220%22 viewBox=%220 0 20 20%22%3E %3Ctitle%3E sad face %3C/title%3E %3Cpath d=%22M2 0a2 2 0 0 0-2 2v18l4-4h14a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm4 4c1.336 0 2.007 1.617 1.06 2.56-.943.947-2.56.276-2.56-1.06A1.5 1.5 0 0 1 6 4zm8 0c1.336 0 2.007 1.617 1.06 2.56-.943.947-2.56.276-2.56-1.06A1.5 1.5 0 0 1 14 4zm-4 5c2.61 0 4.83.67 5.65 3H4.35C5.17 9.67 7.39 9 10 9z%22/%3E %3C/svg%3E");
}
.popups-icon--settings::after {
--mask-image: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"%23202122\"><g transform=\"translate(10 10)\"><path id=\"cdx-icon-settings-a\" d=\"M1.5-10h-3l-1 6.5h5m0 7h-5l1 6.5h3\"/><use xlink:href=\"%23cdx-icon-settings-a\" transform=\"rotate(45)\"/><use xlink:href=\"%23cdx-icon-settings-a\" transform=\"rotate(90)\"/><use xlink:href=\"%23cdx-icon-settings-a\" transform=\"rotate(135)\"/></g><path d=\"M10 2.5a7.5 7.5 0 000 15 7.5 7.5 0 000-15v4a3.5 3.5 0 010 7 3.5 3.5 0 010-7\"/></svg>");
}
.popups-icon--infoFilled::after {
--mask-image: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"%23202122\"><path d=\"M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0zM9 5h2v2H9zm0 4h2v6H9z\"/></svg>");
}
.popups-icon--infoFilled:lang(ar)::after {
--mask-image: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"%23202122\"><path d=\"M8 19a1 1 0 001 1h2a1 1 0 001-1v-1H8zm9-12a7 7 0 10-12 4.9S7 14 7 15v1a1 1 0 001 1h4a1 1 0 001-1v-1c0-1 2-3.1 2-3.1A7 7 0 0017 7z\"/></svg>");
}
.popups-icon--close::after {
--mask-image: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"%23202122\"><path d=\"m4.34 2.93 12.73 12.73-1.41 1.41L2.93 4.35z\"/><path d=\"M17.07 4.34 4.34 17.07l-1.41-1.41L15.66 2.93z\"/></svg>");
}
.popups-icon--reference-generic::after {
--mask-image: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"%23202122\"><path d=\"m15 10-2.78-2.78L9.44 10V1H5a2 2 0 00-2 2v14a2 2 0 002 2h10a2 2 0 002-2V3a2 2 0 00-2-2z\"/></svg>");
}
.popups-icon--reference-book::after {
--mask-image: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"%23202122\"><path d=\"M15 2a7.65 7.65 0 00-5 2 7.65 7.65 0 00-5-2H1v15h4a7.65 7.65 0 015 2 7.65 7.65 0 015-2h4V2zm2.5 13.5H14a4.38 4.38 0 00-3 1V5s1-1.5 4-1.5h2.5z\"/><path d=\"M9 3.5h2v1H9z\"/></svg>");
}
.popups-icon--reference-journal::after {
--mask-image: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"%23202122\"><path d=\"M2 18.5A1.5 1.5 0 003.5 20H5V0H3.5A1.5 1.5 0 002 1.5zM6 0v20h10a2 2 0 002-2V2a2 2 0 00-2-2zm7 8H8V7h5zm3-2H8V5h8z\"/></svg>");
}
.popups-icon--reference-news::after {
--mask-image: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"%23202122\"><path d=\"M5 2a2 2 0 00-2 2v12a1 1 0 01-1-1V5h-.5A1.5 1.5 0 000 6.5v10A1.5 1.5 0 001.5 18H18a2 2 0 002-2V4a2 2 0 00-2-2zm1 2h11v4H6zm0 6h6v1H6zm0 2h6v1H6zm0 2h6v1H6zm7-4h4v5h-4z\"/></svg>");
}
.popups-icon--reference-web::after {
--mask-image: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"%23202122\"><path d=\"M2 2a2 2 0 00-2 2v12a2 2 0 002 2h16a2 2 0 002-2V4a2 2 0 00-2-2zm2 1.5A1.5 1.5 0 112.5 5 1.5 1.5 0 014 3.5zM18 16H2V8h16z\"/></svg>");
}
.popups-icon--preview-disambiguation::after {
--mask-image: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"%23202122\"><path d=\"M7 0a2 2 0 00-2 2h9a2 2 0 012 2v12a2 2 0 002-2V2a2 2 0 00-2-2z\"/><path d=\"M13 20a2 2 0 002-2V5a2 2 0 00-2-2H4a2 2 0 00-2 2v13a2 2 0 002 2zM9 5h4v5H9zM4 5h4v1H4zm0 2h4v1H4zm0 2h4v1H4zm0 2h9v1H4zm0 2h9v1H4zm0 2h9v1H4z\"/></svg>");
}
/***********************
* End Extension:Popups *
************************/
/*************************
* Extension:CiteThisPage *
**************************/
.mw-specialCiteThisPage-bibliographic {
background-color:var(--wiki-content-background-color--secondary);
}
/*****************************
* End Extension:CiteThisPage *
******************************/
/*************************
* Extension:ImageMap *
**************************/
.noresize img { /* Why does the ImageMap container have no special class name? */
display: block; /* fix the scrollbar issue */
}
/*****************************
* End Extension:ImageMap *
******************************/
/**********************
* Extension:Page Forms *
***********************/
.fieldBox,
.templateForm {
background-color:var(--wiki-content-background-color--secondary);
border-color:var(--wiki-content-border-color);
}
.fieldBox .hierarchy_structure textarea {
/* this !important is needed to override an inline color rule */
color:var(--wiki-content-text-color) !important;
}
/***************************
* End Extension:Page Forms *
****************************/
/*********************
* Mobile adjustments *
**********************/
/* Responsive Special:UserRights */
#mw-userrights-table-outer input#wpReason {
width: 100%;
max-width: 33.5em;
}
@media screen and (max-width: 720px) {
html:root { /* make it won't be override by user's common.css */
--wiki-is-top-logo: 1;
--wiki-left-spacing: 0px;
--wiki-right-spacing: 0px;
--wiki-navigation-left-spacing: 3px;
--wiki-navigation-right-spacing: var(--wiki-navigation-left-spacing, 0px);
--wiki-content-border-radius: 0px;
--wiki-content-border-top-radius: 0px;
--wiki-footer-border-radius: 0px;
--wiki-content-padding: 0.5rem;
--wiki-navigation-menu-margin: 0.5rem; /* margin around toggle button and search box */
--wiki-navigation-height: calc(2rem + var(--wiki-is-navigation-inside-content, 0)*0.5em);
--wiki-navigation-bottom-padding: 0px;
--wiki-navigation-tab-height: 2rem;
--wiki-navigation-search-height: calc(2rem + 4px);
--wiki-logo-height: 80px;
--wiki-logo-margin: 10px;
--wiki-navigation-tab-full-height: calc(var(--wiki-navigation-tab-height) + max(var(--wiki-navigation-selected-border-width), var(--wiki-navigation-border-width)) + var(--wiki-content-border-width, 1px));
--wiki-head-icon-padding: 0.25rem;
--wiki-head-icon-size: calc(var(--wiki-navigation-tab-height) - var(--wiki-head-icon-padding) * 2);
--wiki-head-toggle-button-size: var(--wiki-navigation-search-height);
--wiki-sidebar-portal-spacing: 0px;
--wiki-top-spacing: var(--wiki-logo-margin);
--wiki-logo-box-width: calc(min( var(--wiki-logo-file-width, 160) / var(--wiki-logo-file-height, 160) * var(--wiki-logo-height), calc(100vw - var(--wiki-navigation-menu-margin)*2 - 18px)));
}
#mw-head-base {
width: auto;
margin-left: auto;
margin-right: auto;
}
#p-logo {
max-width: 100vw;
top: calc(var(--wikigg-header-height) + var(--wiki-top-spacing, var(--wiki-logo-margin, 15px)));
left: calc(max(0px, (100% - var(--wiki-logo-file-width) / var(--wiki-logo-file-height) * var(--wiki-logo-box-height)) / 2));
}
#mw-head {
position: absolute;
left: 0;
width: 100%;
margin: unset;
top: calc(var(--wikigg-header-height) + var(--wiki-top-spacing, var(--wiki-logo-margin)) + var(--wiki-logo-box-height) + var(--wiki-logo-margin));
border-radius: 0;
}
#left-navigation::before { /* for left spacing */
border-bottom-width: var(--navigation-border-bottom-width);
}
#right-navigation::after {
display: block; /* for right spacing */
}
#p-cactions, #p-variants {
margin-right: 0px;
}
#p-cactions::after, #p-variants::after {
width: 0;
}
#p-search {
position: absolute;
left: var(--wiki-navigation-menu-margin);
right: var(--wiki-navigation-menu-margin);
top: calc(var(--wiki-navigation-height, 3em) + var(--navigation-border-bottom-width));
margin: 0;
padding: 0;
}
#mw-head::before, #mw-head::after,
#p-search::before, #p-search::after {
display: none;
}
#simpleSearch {
width: auto;
max-width: unset; /* override vector default of 20em */
}
.vector-search-box-input {
height: var(--wiki-navigation-search-height);
}
.vector-search-box form {
margin: var(--wiki-navigation-menu-margin) 0px;
}
#mw-head,
.mw-body, .parsoid-body,
.mw-body::after, .parsoid-body::after,
.mw-footer {
border-left-width: 0;
border-right-width: 0;
border-radius: 0;
}
.mw-body, .parsoid-body {
margin-top: 0;
padding-top: calc(var(--navigation-border-bottom-width) + var(--wiki-content-padding) + var(--wiki-navigation-search-height) + var(--wiki-navigation-bottom-padding) + (var(--wiki-navigation-menu-margin) * 2));
}
.mw-body::after, .parsoid-body::after {
left: 0;
right: 0;
}
#mw-data-after-content {
margin-left: 0;
}
#mw-panel {
position: unset;
width: 100%;
margin: 0px auto;
top: 0;
float: unset;
}
/* border-radius fix */
#mw-panel #p-ext-discordwidget + .vector-menu-portal {
border-radius: calc(min(var(--wiki-sidebar-border-radius), var(--wiki-sidebar-portal-spacing) * 999));
}
.vector-menu-dropdown .vector-menu-content {
right: 0;
left: unset;
}
#mw-panel .vector-menu-portal {
box-sizing: border-box;
border-left-width: 0;
border-right-width: 0;
background-color: var(--wiki-sidebar-background-color);
}
.vector-menu-portal .vector-menu-content {
margin-top: 0;
margin-bottom: 0;
display: block !important; /* show all menus on mobile even if they are collapsed by collapsibleSidebarSections gadget */
}
table.wikitable,
table.responsive-table {
display: block;
overflow-x: auto;
border: 0;
}
.mw-installed-software {
word-break: unset;
}
.gallerybox,
.gallerybox > div,
.gallerybox .thumb {
max-width: 100%;
}
/* disable float on RecentChanges legend */
.mw-changeslist-legend {
float: none;
margin: 0 auto;
}
/* advanced search options */
#mw-searchoptions table {
float: none;
}
#mw-searchoptions table td {
display: block;
}
/* popup when clicking the download button in multimediaviewer */
.mw-mmv-dialog {
width: unset;
}
/* turn math elements into scroll blocks unless they're an immediate child of a span */
:not(span) > math.mwe-math-element {
overflow: auto hidden;
max-width: 100%;
}
/* Expandable mobile navigation panel */
body.has-vector-mobile-menu #mw-panel {
position: absolute;
--panel-offset: calc(var(--wiki-head-toggle-button-size) + var(--wiki-sidebar-offset, 0px));
top: calc(var(--wikigg-header-height) + var(--wiki-top-spacing, var(--wiki-logo-margin, 15px)) + var(--wiki-logo-box-height) + var(--wiki-logo-margin, 15px) + var(--wiki-content-border-width, 1px) * var(--wiki-is-navigation-inside-content, 0px) + var(--wiki-navigation-height, 3em) + var(--navigation-border-bottom-width) + var(--wiki-navigation-menu-margin) + var(--panel-offset));
left: var(--wiki-navigation-menu-margin);
right: var(--wiki-navigation-menu-margin);
width: auto;
z-index: 3;
}
body.has-vector-mobile-menu #mw-panel:not(.nav--expanded){
padding: 0;
border: 0;
border-image: none;
}
body.has-vector-mobile-menu #mw-panel .mobile-nav-toggle {
position: absolute;
cursor: pointer;
z-index: 5;
display: flex;
justify-content: center;
align-items: center;
width: var(--wiki-head-toggle-button-size);
height: var(--wiki-head-toggle-button-size);
box-sizing: border-box;
appearance: none;
padding: 0;
border: 1px solid var(--wiki-content-border-color);
background-color: var(--wiki-navigation-background-color);
top: calc(-1 * var(--panel-offset));
}
#mw-panel #p-ext-discordwidget {
background-color: var(--wiki-sidebar-background-color);
padding: 0.5rem 0.25rem 0.25rem 0.5rem;
border: var(--wiki-sidebar-border-width, 1px) var(--wiki-sidebar-border-style, solid) var(--wiki-sidebar-border-color);
}
body.has-vector-mobile-menu #mw-panel .vector-menu-portal {
display: none;
border-image: none;
}
body.has-vector-mobile-menu #mw-panel .mobile-nav-toggle.nav--expanded ~ .vector-menu-portal {
display: block;
}
body.has-vector-mobile-menu #mw-navigation #mw-panel .vector-menu-portal {
text-align: left;
font-size: 110%;
border-left-width: var(--wiki-sidebar-border-width, 1px);
border-right-width: var(--wiki-sidebar-border-width, 1px);
margin-inline: var(--wiki-sidebar-margin, 0.5em);
}
body.has-vector-mobile-menu #mw-navigation #mw-panel .vector-menu-portal + .vector-menu-portal {
border-top-width: 0;
}
body.has-vector-mobile-menu #mw-navigation #mw-panel .vector-menu-portal:not(:last-child) {
border-bottom-width: 0;
}
body.has-vector-mobile-menu #mw-panel .vector-menu-content-list {
display: flex;
flex-wrap: wrap;
}
body.has-vector-mobile-menu #mw-panel .vector-menu-content-list a {
display: block;
padding: 0.2rem 0.5rem;
border: 1px solid transparent;
}
body.has-vector-mobile-menu #mw-panel .vector-menu-content-list a:hover {
border-color: var(--wiki-content-link-color);
}
body.has-vector-mobile-menu #mw-panel #p-navigation-label {
display: block;
}
body.has-vector-mobile-menu #p-logo {
/* Logo's a part of the sidebar panel, which uses relative positioning for the expandable button. Offset the logo appropriately. */
top: calc(-1 * (var(--wiki-logo-box-height) + var(--wiki-logo-margin, 15px) + var(--wiki-content-border-width, 1px) * var(--wiki-is-navigation-inside-content, 0) + var(--wiki-navigation-height, 3em) + var(--navigation-border-bottom-width) + var(--wiki-navigation-menu-margin) + var(--panel-offset)));
}
.mobile-nav-toggle {
--icon: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M1 3v2h18V3zm0 8h18V9H1zm0 6h18v-2H1z'/%3E%3C/svg%3E%0A");
}
body.has-vector-mobile-menu #p-tb .mw-list-item > a {
display: inline-flex;
}
body.has-vector-mobile-menu .vector-menu-content-list {
flex-direction: row;
}
/* Search adjustments for the expandable menu */
body.has-vector-mobile-menu #p-search {
/* reposition to the right when mobile sidebar menu is active */
left: calc(var(--wiki-navigation-menu-margin) * 2 + var(--wiki-head-toggle-button-size));
right: var(--wiki-navigation-menu-margin);
transform: none;
}
body.has-vector-mobile-menu #simpleSearch {
width: 100%;
margin: 0 auto;
}
/* icon navbar tabs + expandable nav panel icon */
#mw-head {
--icon: url("data:image/svg+xml,%3C%3Fxml version='1.0' %3F%3E%3Csvg fill='none' height='24' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h24v24H0z' fill='none' stroke='none'/%3E%3Cpath d='M4 4l4 16l4 -14l4 14l4 -16'/%3E%3C/svg%3E");
}
#mw-head .vector-menu-tabs .mw-list-item a,
#mw-head .vector-menu-dropdown .vector-menu-heading,
#mw-panel .mobile-nav-toggle {
line-height: var(--wiki-head-icon-size);
width: var(--wiki-head-icon-size); /* same as line height */
height: var(--wiki-head-icon-size);
box-sizing: content-box;
padding: var(--wiki-head-icon-padding);
color: transparent; /**<< for watch/unwatch, the text of <a> will be plain 'watch'/'unwatch' without <span> after clicking. **/
}
#mw-head .vector-menu-tabs .mw-list-item a::before,
#mw-head .vector-menu-dropdown .vector-menu-heading::before,
#mw-panel .mobile-nav-toggle::before {
content: "";
display: block;
position: unset;
background-image: none;
width: var(--wiki-head-icon-size);
height: var(--wiki-head-icon-size);
margin: 0;
--mask: var(--icon) no-repeat;
-webkit-mask: var(--mask);
mask: var(--mask);
-webkit-mask-size: 100% 100%;
mask-size: 100% 100%;
-webkit-mask-position: center center;
mask-position: center center;
background-color: var(--wiki-navigation-text-color);
}
#mw-head .vector-menu-tabs .mw-list-item a:hover::before,
#mw-head .vector-menu-dropdown:hover .vector-menu-heading::before,
#mw-panel .mobile-nav-toggle:hover::before,
#mw-panel .mobile-nav-toggle.nav--expanded::before {
background-color: var(--wiki-navigation-text-color--hover, var(--wiki-content-link-color--hover)); /* fallback for backwards compatibility */
}
#mw-head .vector-menu-tabs .mw-list-item.selected a::before {
background-color: var(--wiki-navigation-selected-text-color);
}
#mw-head .vector-menu-tabs .mw-list-item a span,
#mw-head .vector-menu-dropdown .vector-menu-heading span {
display: none;
}
#mw-head .vector-menu-dropdown .vector-menu-heading::after {
display: none;
}
#ca-ve-edit,
#ca-edit {
--icon: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='m16.77 8 1.94-2a1 1 0 0 0 0-1.41l-3.34-3.3a1 1 0 0 0-1.41 0L12 3.23zM1 14.25V19h4.75l9.96-9.96-4.75-4.75z'/%3E%3C/svg%3E%0A");
}
#ca-ve-edit + #ca-edit {
--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' aria-hidden='true'%3E%3C!----%3E%3Cg%3E%3Cpath d='M1 3v14h3v-2H3V5h1V3zm4 0v14h4v-2H7V5h2V3zm11 0v2h1v10h-1v2h3V3zm-5 0v2h2v10h-2v2h4V3z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");
}
#ca-view,
#ca-view-foreign {
--icon: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M10 14.5a4.5 4.5 0 1 1 4.5-4.5 4.5 4.5 0 0 1-4.5 4.5M10 3C3 3 0 10 0 10s3 7 10 7 10-7 10-7-3-7-10-7'/%3E%3Ccircle cx='10' cy='10' r='2.5'/%3E%3C/svg%3E");
}
#left-navigation li[id^=ca-nstab-] {
--icon: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ctitle%3E article %3C/title%3E%3Cpath d='M5 1a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2zm0 3h5v1H5zm0 2h5v1H5zm0 2h5v1H5zm10 7H5v-1h10zm0-2H5v-1h10zm0-2H5v-1h10zm0-2h-4V4h4z'/%3E%3C/svg%3E%0A");
}
#ca-history {
--icon: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M9 6v5h.06l2.48 2.47 1.41-1.41L11 10.11V6z'/%3E%3Cpath d='M10 1a9 9 0 0 0-7.85 13.35L.5 16H6v-5.5l-2.38 2.38A7 7 0 1 1 10 17v2a9 9 0 0 0 0-18'/%3E%3C/svg%3E%0A");
}
#ca-talk {
--icon: url("data:image/svg+xml,%3C%3Fxml version='1.0' %3F%3E%3Csvg id='Outlined' viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Ctitle/%3E%3Cg id='Fill'%3E%3Cpath d='M26,12H24V6a3,3,0,0,0-3-3H6A3,3,0,0,0,3,6V24.41l5.12-5.12A1.05,1.05,0,0,1,8.83,19H12v3a3,3,0,0,0,3,3h8.17a1.05,1.05,0,0,1,.71.29L29,30.41V15A3,3,0,0,0,26,12ZM12,15v2H8.83a3,3,0,0,0-2.12.88L5,19.59V6A1,1,0,0,1,6,5H21a1,1,0,0,1,1,1v6H15A3,3,0,0,0,12,15ZM27,25.59l-1.71-1.71A3,3,0,0,0,23.17,23H15a1,1,0,0,1-1-1V15a1,1,0,0,1,1-1H26a1,1,0,0,1,1,1Z'/%3E%3C/g%3E%3C/svg%3E");
}
#t-contributions {
--icon: url("data:image/svg+xml,%3C%3Fxml version='1.0' %3F%3E%3Csvg enable-background='new 0 0 32 32' id='Stock_cut' version='1.1' viewBox='0 0 32 32' xml:space='preserve' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdesc/%3E%3Cpath d='M27,12V5h-7v0 c0-2.209-1.791-4-4-4h0c-2.209,0-4,1.791-4,4v0H1v7h0c2.209,0,4,1.791,4,4v0c0,2.209-1.791,4-4,4h0v11h11v0c0-2.209,1.791-4,4-4h0 c2.209,0,4,1.791,4,4v0h7V20h0c2.209,0,4-1.791,4-4v0C31,13.791,29.209,12,27,12L27,12z' fill='none' stroke='%23000000' stroke-linejoin='round' stroke-miterlimit='10' stroke-width='2'/%3E%3C/svg%3E");
}
#ca-addsection {
--icon: url("data:image/svg+xml,%3C%3Fxml version='1.0' %3F%3E%3Csvg id='Outlined' viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Ctitle/%3E%3Cg id='Fill'%3E%3Cpolygon points='29 15 17 15 17 3 15 3 15 15 3 15 3 17 15 17 15 28 17 28 17 17 29 17 29 15'/%3E%3C/g%3E%3C/svg%3E");
}
#ca-viewsource {
--icon: url("data:image/svg+xml,%3C%3Fxml version='1.0' %3F%3E%3Csvg height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath class='heroicon-ui' d='M20.59 12l-3.3-3.3a1 1 0 1 1 1.42-1.4l4 4a1 1 0 0 1 0 1.4l-4 4a1 1 0 0 1-1.42-1.4l3.3-3.3zM3.4 12l3.3 3.3a1 1 0 0 1-1.42 1.4l-4-4a1 1 0 0 1 0-1.4l4-4a1 1 0 0 1 1.42 1.4L3.4 12zm7.56 8.24a1 1 0 0 1-1.94-.48l4-16a1 1 0 1 1 1.94.48l-4 16z'/%3E%3C/svg%3E");
}
#p-variants {
--icon: url("data:image/svg+xml,%3C%3Fxml version='1.0' %3F%3E%3Csvg id='Outlined' viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Ctitle/%3E%3Cg id='Fill'%3E%3Cpath d='M16,2A14,14,0,1,0,30,16,14,14,0,0,0,16,2Zm8,13a24.28,24.28,0,0,0-.41-3.62c2.19.91,3.75,2.19,4.25,3.62Zm-2,0H17V10a20.9,20.9,0,0,1,4.34.63A20.26,20.26,0,0,1,22,15ZM17,8V4.19c1.43.5,2.71,2.06,3.62,4.25A24.28,24.28,0,0,0,17,8ZM15,4.19V8a24.28,24.28,0,0,0-3.62.41C12.29,6.25,13.57,4.69,15,4.19ZM15,10v5H10a20.26,20.26,0,0,1,.63-4.34A20.9,20.9,0,0,1,15,10ZM8,15H4.19c.5-1.43,2.06-2.71,4.25-3.62A24.28,24.28,0,0,0,8,15Zm0,2a24.28,24.28,0,0,0,.41,3.62C6.25,19.71,4.69,18.43,4.19,17Zm2,0h5v5a20.9,20.9,0,0,1-4.34-.63A20.26,20.26,0,0,1,10,17Zm5,7v3.84c-1.43-.5-2.71-2.06-3.62-4.25A24.28,24.28,0,0,0,15,24Zm2,3.84V24a24.28,24.28,0,0,0,3.62-.41C19.71,25.75,18.43,27.31,17,27.81ZM17,22V17h5a20.26,20.26,0,0,1-.63,4.34A20.9,20.9,0,0,1,17,22Zm7-5h3.84c-.5,1.43-2.06,2.71-4.25,3.62A24.28,24.28,0,0,0,24,17Zm2.87-6.12A15.11,15.11,0,0,0,23,9a15.11,15.11,0,0,0-1.85-3.87A12.12,12.12,0,0,1,26.84,10.88Zm-16-5.72A15.11,15.11,0,0,0,9,9a15.11,15.11,0,0,0-3.87,1.85A12.12,12.12,0,0,1,10.88,5.16Zm-5.72,16A15.11,15.11,0,0,0,9,23a15.11,15.11,0,0,0,1.85,3.87A12.12,12.12,0,0,1,5.16,21.12Zm16,5.72A15.11,15.11,0,0,0,23,23a15.11,15.11,0,0,0,3.87-1.85A12.12,12.12,0,0,1,21.12,26.84Z'/%3E%3C/g%3E%3C/svg%3E");
}
#p-cactions {
--icon: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Ccircle cx='3' cy='10' r='2'/%3E%3Ccircle cx='17' cy='10' r='2'/%3E%3C/svg%3E%0A");
}
#ca-watch {
--icon: var(--icon-star-empty);
}
#ca-unwatch {
--icon: var(--icon-star-filled);
}
.vector-menu-tabs #ca-watch.icon a:hover::before,
.vector-menu-tabs #ca-unwatch.icon a:hover::before {
background-image: none;
}
/* RecentChanges - prevent overflow on long summaries */
.client-js .mw-changeslist ul,
.client-js .mw-changeslist table.mw-enhanced-rc {
margin-left: 0;
}
.mw-changeslist-line-inner-comment,
.mw-changeslist-line .comment {
font-size: 0.9em;
}
.mw-userlink {
overflow-wrap: anywhere;
}
}
/* Hide the expandable navigation button for desktop users */
.mobile-nav-toggle {
display: none;
}
/*************
* End mobile *
**************/
/******************************************************/
/* */
/* [END] OF WIKI.GG DEFAULT LOADOUT */
/* ALL LOCAL SKIN CUSTOMIZATIONS SHOULD GO BELOW HERE */
/* DO NOT EDIT OR DELETE THIS COMMENT BLOCK */
/* */
/******************************************************/
90c0d4f26a4dacdcbb0d366a0cf2a8b2e8ee1710
MediaWiki:Common.css
8
239
263
2025-11-02T00:44:56Z
ARTIFICER
564804
Importing default loadout
css
text/css
/* CSS placed here will be applied to all skins */
/******************************************************************************************
********************************* Start user-edit variables *******************************
******************************************************************************************/
/*****************************************
****** START BASIC DESIGN VARIABLES ******
----------------------------------------*/
:root {
--wiki-content-heading-font-family: 'Linux Libertine', 'Georgia', 'Times', serif;
--wiki-sidebar-heading-font-family: sans-serif;
--wiki-content-border-radius: 0px;
--wiki-sidebar-border-radius: 0px;
}
/*----------------------------------------
******* END BASIC DESIGN VARIABLES *******
*****************************************/
/*****************************************
****** START BASIC COLOR VARIABLES *******
----------------------------------------*/
:root,
/* Begin light styles, delete from here to "end light styles" if you don't want your wiki to support any light themes (remove from [[Mediawiki:Theme-definitions]] too, or ask wiki.gg staff for help doing this) */
/* FYI: .view- will affect any theme marked |kind=light, */
/* individual themes are prefixed with .theme- instead */
.view-light {
/**********************
* Probably edit these * [ LIGHT VIEW ]
***********************/
--wiki-body-background-color: #F6F6F6;
--wiki-body-background-image: url(filepath://Site-background.jpg);
--wiki-content-background-color: #ffffff;
--wiki-content-background-opacity: 100%;
--wiki-content-border-color: #a7d7f9;
--wiki-content-link-color: #0645ad; /* if changing this, remember to change --wiki-icon-to-link-filter as well!!! */
/* [ LIGHT VIEW ] */
--wiki-accent-color: #3366cc;
--wiki-accent-label-color: #ffffff;
--wiki-accent-link-color: #D5FB51;
--wiki-icon-to-link-filter: invert(20%) sepia(93%) saturate(2141%) hue-rotate(210deg) brightness(83%) contrast(103%); /* put your --wiki-content-link-color into https://mrpie5.gitlab.io/css-filter-generator/ */
/**/
}
/* end light styles */
/* Begin dark styles, delete from here to "end dark styles" if you don't want your wiki to support any dark themes (remove it from [[Mediawiki:Theme-definitions]] too, or ask wiki.gg staff for help doing this) */
/* FYI: .view- will affect any theme marked |kind=dark, */
/* individual themes are prefixed with .theme- instead */
.view-dark {
/**********************
* Probably edit these * [ DARK VIEW ]
***********************/
--wiki-body-background-color: #171717;
--wiki-body-background-image: url(filepath://Site-background-dark.jpg);
--wiki-content-background-color: #202020;
--wiki-content-background-opacity: 90%;
--wiki-content-border-color: #991A51;
--wiki-content-link-color: #6d8afb; /* if changing this, remember to change --wiki-icon-to-link-filter as well!!! */
/* [ DARK VIEW ] */
--wiki-accent-color: #ff4d9d;
--wiki-accent-label-color: #000;
--wiki-accent-link-color: #1e1e43;
--wiki-icon-to-link-filter: invert(60%) sepia(70%) saturate(3715%) hue-rotate(206deg) brightness(101%) contrast(97%); /* put your --wiki-content-link-color into https://mrpie5.gitlab.io/css-filter-generator/ */
/**/
}
/* End dark styles */
/*----------------------------------------
******* END BASIC COLOR VARIABLES ********
*****************************************/
/*****************************************
**** START ADVANCED COLOR VARIABLES ******
----------------------------------------*/
:root,
.view-light {
/*******************
* Maybe edit these * [ LIGHT VIEW ]
********************/
--wiki-body-background-position: top center;
--wiki-body-background-size: cover;
--wiki-body-background-repeat: no-repeat;
--wiki-body-background-attachment: fixed;
--wiki-content-background-color--secondary: color-mix(in srgb, var(--wiki-content-background-color) 96%, var(--wiki-content-dynamic-color));
--wiki-content-text-color: #111111;
--wiki-content-link-color--visited: var(--wiki-content-link-color);
--wiki-content-link-color--hover: var(--wiki-content-link-color);
--wiki-content-redlink-color: #ba0000;
--wiki-content-heading-color: var(--wiki-content-text-color);
--wiki-content-heading-border-color: var(--wiki-content-border-color);
/* [ LIGHT VIEW ] */
--wiki-navigation-background-color: var(--wiki-content-background-color--secondary);
--wiki-navigation-border-color: var(--wiki-navigation-selected-border-color);
--wiki-navigation-text-color: var(--wiki-content-link-color);
--wiki-navigation-selected-background-color: var(--wiki-content-background-color);
--wiki-navigation-selected-border-color: var(--wiki-content-border-color);
--wiki-navigation-selected-text-color: var(--wiki-content-text-color);
/* [ LIGHT VIEW ] */
--wiki-neutral-color: var(--wiki-content-text-mix-color);
--wiki-alert-color: #bf0017;
--wiki-warning-color: #b05f30;
--wiki-success-color: #0c742f;
/**/
/***********************************
* Likely do not need to edit these * [ LIGHT VIEW ]
************************************/
--wiki-body-dynamic-color: #000000;
--wiki-body-dynamic-color--inverted: #ffffff;
--wiki-body-dynamic-color--secondary: #333333;
--wiki-body-dynamic-color--secondary--inverted: #cccccc;
--wiki-content-border-color--secondary: color-mix(in srgb, var(--wiki-content-border-color) 50%, transparent);
--wiki-content-border-color--accent: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent);
--wiki-content-link-label-color: #ffffff;
--wiki-content-dynamic-color: #000000;
--wiki-content-dynamic-color--inverted: #ffffff;
--wiki-content-dynamic-color--secondary: #333333;
--wiki-content-dynamic-color--secondary--inverted: #cccccc;
/* [ LIGHT VIEW ] */
--wiki-alert-label-color: #ffffff;
--wiki-warning-label-color: #ffffff;
--wiki-success-label-color: #ffffff;
--wiki-icon-general-filter: ; /* do not set this to none, ignore the "unexpected token" error */
/**/
}
.view-dark {
/*******************
* Maybe edit these * [ DARK VIEW ]
********************/
--wiki-body-background-position: top center;
--wiki-body-background-size: cover;
--wiki-body-background-repeat: no-repeat;
--wiki-body-background-attachment: fixed;
--wiki-content-background-color--secondary: color-mix(in srgb, var(--wiki-content-background-color) 96%, var(--wiki-content-dynamic-color));
--wiki-content-text-color: #ededed;
--wiki-content-link-color--visited: var(--wiki-content-link-color);
--wiki-content-link-color--hover: var(--wiki-content-link-color);
--wiki-content-redlink-color: #FC5B4F;
--wiki-content-heading-color: var(--wiki-content-text-color);
--wiki-content-heading-border-color: var(--wiki-content-border-color);
/* [ DARK VIEW ] */
--wiki-navigation-background-color: var(--wiki-content-background-color--secondary);
--wiki-navigation-border-color: var(--wiki-navigation-selected-border-color);
--wiki-navigation-text-color: var(--wiki-content-link-color);
--wiki-navigation-selected-background-color: var(--wiki-content-background-color);
--wiki-navigation-selected-border-color: var(--wiki-content-border-color);
--wiki-navigation-selected-text-color: var(--wiki-content-text-color);
/* [ DARK VIEW ] */
--wiki-neutral-color: var(--wiki-content-text-mix-color);
--wiki-alert-color: #ff576a;
--wiki-warning-color: #cf721c;
--wiki-success-color: #13aa45;
/**/
/***********************************
* Likely do not need to edit these * [ DARK VIEW ]
************************************/
--wiki-body-dynamic-color: #ffffff;
--wiki-body-dynamic-color--inverted: #000000;
--wiki-body-dynamic-color--secondary: #cccccc;
--wiki-body-dynamic-color--secondary--inverted: #333333;
--wiki-content-border-color--secondary: color-mix(in srgb, var(--wiki-content-border-color) 50%, transparent);
--wiki-content-border-color--accent: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent);
--wiki-content-link-label-color: #000;
--wiki-content-dynamic-color: #ffffff;
--wiki-content-dynamic-color--inverted: #000000;
--wiki-content-dynamic-color--secondary: #cccccc;
--wiki-content-dynamic-color--secondary--inverted: #333333;
/* [ DARK VIEW ] */
--wiki-alert-label-color: #000000;
--wiki-warning-label-color: #000000;
--wiki-success-label-color: #000000;
--wiki-icon-general-filter: invert(100%);
}
/*----------------------------------------
***** END ADVANCED COLOR VARIABLES *******
*****************************************/
/*****************************************
**** START ADVANCED DESIGN VARIABLES *****
----------------------------------------*/
:root {
/***********************
start logo position
----------------------*/
--wiki-is-top-logo: 0; /* 1 = center logo at the top of the page; 0 = logo at the top left of the page */
--wiki-logo-file-width: 160; /* Width of the image file in px. Put a number without the letters `px`. */
--wiki-logo-file-height: 160; /* Height of the image file in px. Put a number without the letters `px`. */
--wiki-logo-height: calc(var(--wiki-logo-file-height)*1px); /* Valid only when --wiki-is-top-logo is 1. The height the logo should be shown */
--wiki-logo-margin: 15px; /* the width of margin below the logo. When --wiki-is-top-logo is 1, this is also the default value of --wiki-top-spacing */
/*-----------------------
end logo position
***********************/
--wiki-is-navigation-inside-content: 0; /* 0 = default navigation tabs layout; 1 = navigation tabs inside content box */
--wiki-body-font-family: sans-serif;
--wiki-content-firstheading-font-family: var(--wiki-content-heading-font-family); /* only apply to the main title of article */
/****** the following length variables must have units specified even if 0, ignore the warning *****/
--wiki-content-border-width: 1px;
--wiki-sidebar-width: 10em; /* width of sidebar(#mw-panel) */
--wiki-sidebar-portal-spacing: 0px;
--wiki-sidebar-border-width: var(--wiki-content-border-width);
--wiki-navigation-border-radius: 0px; /* border radius of tabs */
/*******************
* Maybe edit these * [ DESIGN ]
********************/
--wiki-logo-filter: none;
/****** the following length variables must have units specified even if 0, ignore the warning *****/
--wiki-content-border-top-radius: var(--wiki-content-border-radius);
--wiki-content-border-style: solid;
--wiki-content-border-image: none;
--wiki-content-backdrop-filter: none;
--wiki-page-content-max-width: 9999px; /* max width of sidebar+gap+content, must be a length value. A huge value can be used to indicate no limit, e.g. 99999px */
--wiki-gap-between-sidebar-and-content: 1em; /* gap between sidebar(#mw-panel) and content(#content) */
--wiki-sidebar-font-size: 0.75em; /* please use em or rem for this */
--wiki-sidebar-line-height: 1.125;
--wiki-sidebar-heading-font-size: 0.75em; /* please use em or rem for this */
--wiki-sidebar-margin: 0em;
--wiki-sidebar-list-item-padding: 0.25em 0.25rem;
--wiki-sidebar-list-padding: 0.25rem;
--wiki-sidebar-list-item-background--hover: none; /* background of hover item */
--wiki-navigation-font-size: 0.8125em; /* please use em or rem for this */
--wiki-navigation-font-weight: normal;
--wiki-navigation-selected-font-weight: var(--wiki-navigation-font-weight);
--wiki-navigation-text-transform: none;
--wiki-navigation-height: 2.75rem; /* height of navigation area,include spacing above tabs */
--wiki-navigation-left-spacing: calc( (1 - var(--wiki-is-navigation-inside-content))*var(--wiki-content-border-radius) + var(--wiki-is-navigation-inside-content) * 0.5rem );
--wiki-navigation-right-spacing: calc( var(--wiki-is-navigation-inside-content) * 0.5rem );
--wiki-navigation-box-background-color: var(--wiki-content-background-color);
--wiki-navigation-box-background-opacity: calc(var(--wiki-content-background-opacity)*0.8*var(--wiki-is-navigation-inside-content));
--wiki-navigation-box-background: color-mix(in srgb, var(--wiki-navigation-box-background-color) var(--wiki-navigation-box-background-opacity), transparent); /* usually only needed when --wiki-is-navigation-inside-content is 1 */
--wiki-navigation-box-border-image: none; /* usually only needed when --wiki-is-navigation-inside-content is 1 */
--wiki-navigation-box-backdrop-filter: none; /* usually only needed when --wiki-is-navigation-inside-content is 1 */
--wiki-navigation-selected-backdrop-filter: var(--wiki-content-backdrop-filter); /* usually only needed when --wiki-is-navigation-inside-content is 0 */
--wiki-navigation-backdrop-filter: var(--wiki-navigation-selected-backdrop-filter); /* usually only needed when --wiki-is-navigation-inside-content is 0 */
/* nav tabs style. The vector gradient is default.
* If you want to customize the style of tabs, it's easier to start with the following settings:
* --wiki-navigation-background-image: none;
* --wiki-navigation-selected-background-image: none;
* --wiki-navigation-selected-border-width: calc( (1 - var(--wiki-is-navigation-inside-content))*var(--wiki-content-border-width) + var(--wiki-is-navigation-inside-content) * 1px );
* --wiki-navigation-selected-border-bottom-background: none;
* --wiki-navigation-tab-spacing: 0.25em;
* --wiki-navigation-tab-padding-top: 0.5em;
* --wiki-navigation-tab-padding-bottom: 0.5em;
*/
--wiki-navigation-tab-spacing: -1px; /* width of the space between tabs, can be a negative number, in which case adjacent tabs will overlap */
--wiki-navigation-tab-padding-top: 1.25em;
--wiki-navigation-tab-padding-x: 0.75em;
--wiki-navigation-tab-padding-bottom: 4px;
--wiki-navigation-selected-border-width: 0px; /* border width of selected tabs */
--wiki-navigation-border-width: var(--wiki-navigation-selected-border-width); /* border width of normal tabs */
--wiki-navigation-border-image: none;
--wiki-navigation-selected-border-image: var(--wiki-navigation-border-image);
--wiki-navigation-background-image: linear-gradient(to bottom,transparent 0,var(--wiki-content-border-color) 100%), linear-gradient(to bottom,transparent 0,var(--wiki-content-border-color) 100%), linear-gradient(to top,var(--wiki-navigation-background-color) 0,var(--wiki-navigation-selected-background-color) 100%);
--wiki-navigation-background-repeat: no-repeat, no-repeat, repeat-x;
--wiki-navigation-background-position: left bottom, right bottom, left bottom;
--wiki-navigation-background-size: 1px 100%, 1px 100%, 100%;
--wiki-navigation-selected-background-image: linear-gradient(to bottom,transparent 0,var(--wiki-content-border-color) 100%), linear-gradient(to bottom,transparent 0,var(--wiki-content-border-color) 100%);
--wiki-navigation-selected-background-repeat: no-repeat, no-repeat;
--wiki-navigation-selected-background-position: left bottom, right bottom;
--wiki-navigation-selected-background-size: 1px 100%, 1px 100%;
--wiki-navigation-selected-border-bottom-background: linear-gradient(to right, var(--wiki-content-border-color) 0, var(--wiki-content-border-color) 1px, transparent 1px), linear-gradient(to left, var(--wiki-content-border-color) 0, var(--wiki-content-border-color) 1px, transparent 1px);
/* affects the dropdown menu under More */
--wiki-navigation-dropdown-text-color: var(--wiki-navigation-text-color);
--wiki-navigation-dropdown-text-color--hover: var(--wiki-navigation-dropdown-text-color);
--wiki-navigation-dropdown-font-size: var(--wiki-navigation-font-size); /* please use em or rem for this */
--wiki-navigation-dropdown-border-width: 1px;
--wiki-navigation-dropdown-border-radius: var(--wiki-navigation-border-radius);
--wiki-navigation-dropdown-padding: 0.25em; /* padding of the dropdown menu box */
--wiki-navigation-dropdown-item-padding: 0.625em; /* padding of each dropdown menu items */
--wiki-navigation-dropdown-item-background--hover: none; /* background of hover item */
--wiki-navigation-dropdown-border-image: none;
--wiki-navigation-dropdown-backdrop-filter: none;
--wiki-navigation-dropdown-box-shadow: none; /* box shadow */
/* styles of the footer */
--wiki-spacing-before-footer: 0px;
--wiki-footer-border-image: none;
/* padding on body element */
--wiki-top-spacing: calc(var(--wiki-is-top-logo)*var(--wiki-logo-margin) + (1 - var(--wiki-is-top-logo))*1em); /* extra spacing below wiki.gg netbar */
--wiki-left-spacing: 1em;
--wiki-right-spacing: 1em;
--wiki-bottom-spacing: 2em;
/* pading on content-element */
--wiki-content-top-spacing:1.25em;
--wiki-content-left-spacing:1.5em;
--wiki-content-right-spacing:1.5em;
--wiki-content-bottom-spacing:1.5em;
/* end design variables */
}
/*----------------------------------------
***** END ADVANCED DESIGN VARIABLES ******
*****************************************/
/*******************************
**** START SHARED VARIABLES ****
**** tl;dr: don't edit this ****
********************************/
/*
These variables are rarely touched, usually inherit other variables, and are shared on all themes.
In 99% of cases none of these are ever edited, and you should only be doing so if you have a very clear vision,
understand what you are doing, and *know* that what you are trying to do is not accomplished by changing
another variable in the above sections.
Since these are by default shared across all themes, if you support multiple themes you'll probably want to
separate the variables you want to modify here into .view-x blocks like above. If you don't understand
what that means or how to do that then you probably shouldn't be modifying this section.
*/
:root {
--wiki-content-border-bottom-width: var(--wiki-content-border-width);
--wiki-content-border-bottom-style: var(--wiki-content-border-style);
--wiki-content-border-bottom-color: var(--wiki-content-border-color);
--wiki-content-text-mix-color: color-mix(in srgb, var(--wiki-content-background-color), var(--wiki-content-text-color) 62%);
--wiki-content-text-mix-color-95: color-mix(in srgb, var(--wiki-content-background-color) 95%, var(--wiki-content-text-color));
--wiki-content-text-color--hover: var(--wiki-content-text-color);
/* heading */
--wiki-content-heading-border-bottom-width: 1px;
--wiki-content-heading-border-style: solid;
--wiki-content-heading-font-weight: normal;
--wiki-content-heading-font-style: normal;
--wiki-content-heading-text-transform: none;
--wiki-content-heading-line-height: normal;
--wiki-content-heading-text-shadow: none;
/* first heading (h1) */
--wiki-content-firstheading-border-bottom-width: var(--wiki-content-heading-border-bottom-width);
--wiki-content-firstheading-border-style: var(--wiki-content-heading-border-style);
--wiki-content-firstheading-border-color: var(--wiki-content-heading-border-color);
--wiki-content-firstheading-font-weight: var(--wiki-content-heading-font-weight);
--wiki-content-firstheading-font-style: var(--wiki-content-heading-font-style);
--wiki-content-firstheading-text-transform: var(--wiki-content-heading-text-transform);
--wiki-content-firstheading-line-height: var(--wiki-content-heading-line-height);
--wiki-content-firstheading-color: var(--wiki-content-heading-color);
--wiki-content-firstheading-text-shadow: none;
/* sub-heading (h3, h4, h5, h6) */
--wiki-content-subheading-border-bottom-width: 0px;
--wiki-content-subheading-border-style: var(--wiki-content-heading-border-style);
--wiki-content-subheading-border-color: var(--wiki-content-heading-border-color);
--wiki-content-subheading-font-family: var(--wiki-body-font-family);
--wiki-content-subheading-font-weight: bold;
--wiki-content-subheading-font-style: normal;
--wiki-content-subheading-text-transform: none;
--wiki-content-subheading-line-height: var(--wiki-content-heading-line-height);
--wiki-content-subheading-color: var(--wiki-content-heading-color);
--wiki-content-subheading-text-shadow: none;
/* heading size */
--wiki-content-firstheading-font-size: 1.8em;
--wiki-content-heading-h2-font-size: 1.5em;
--wiki-content-heading-h3-font-size: 1.2em;
--wiki-content-heading-h4-font-size: 114%;
--wiki-content-heading-h5-font-size: 108%;
--wiki-content-heading-h6-font-size: 100%;
--wiki-content-toc-background: var(--wiki-content-background-color--secondary);
--wiki-content-toc-border-width: 1px;
--wiki-content-toc-border-style: solid;
--wiki-content-toc-border-color: var(--wiki-content-border-color);
--wiki-content-toc-border-radius: 0px;
--wiki-content-toc-border-image: none;
--wiki-content-toc-box-shadow: 0 0.1em 0.2em #000000;
--wiki-content-catlinks-background: var(--wiki-content-background-color--secondary);
--wiki-content-catlinks-border-width: 1px;
--wiki-content-catlinks-border-style: solid;
--wiki-content-catlinks-border-color: var(--wiki-content-border-color);
--wiki-content-catlinks-border-radius: 0px;
--wiki-content-catlinks-border-image: none;
--wiki-content-catlinks-box-shadow: none;
--wiki-content-filetoc-background: var(--wiki-content-background-color--secondary);
--wiki-content-filetoc-border-width: 1px;
--wiki-content-filetoc-border-style: solid;
--wiki-content-filetoc-border-color: var(--wiki-content-border-color);
--wiki-content-filetoc-border-radius: 0px;
--wiki-content-filetoc-border-image: none;
--wiki-content-filetoc-box-shadow: none;
--wiki-logo-offset-x: 0px;
--wiki-logo-offset-y: 0px;
--wiki-sidebar-padding: 0px;
--wiki-sidebar-background-color: var(--wiki-content-background-color);
--wiki-sidebar-background-opacity: var(--wiki-content-background-opacity);
--wiki-sidebar-background-image: none;
--wiki-sidebar-background-position: center;
--wiki-sidebar-background-repeat: repeat;
--wiki-sidebar-background-size: auto;
--wiki-sidebar-box-shadow: none;
--wiki-sidebar-filter: none;
--wiki-sidebar-backdrop-filter: var(--wiki-content-backdrop-filter);
--wiki-sidebar-border-color: var(--wiki-content-border-color);
--wiki-sidebar-border-style: solid;
--wiki-sidebar-border-image: none;
--wiki-sidebar-link-color: var(--wiki-content-link-color);
--wiki-sidebar-link-color--hover: var(--wiki-content-link-color--hover);
--wiki-sidebar-heading-color: var(--wiki-content-heading-color);
--wiki-sidebar-heading-font-weight: normal;
--wiki-sidebar-heading-font-style: normal;
--wiki-sidebar-heading-text-transform: none;
--wiki-sidebar-heading-line-height: normal;
--wiki-sidebar-heading-padding: 0.5rem 0.25rem 0.5rem 0.5rem;
--wiki-sidebar-heading-margin: 0px 0px -0.5rem 0px;
--wiki-sidebar-heading-background: none;
--wiki-sidebar-heading-border-image: none;
--wiki-sidebar-heading-text-shadow: none;
--wiki-sidebar-list-background: none;
--wiki-sidebar-list-border-image: none;
--wiki-sidebar-list-margin: 0px;
--wiki-sidebar-list-item-background: none;
--wiki-sidebar-list-item-border-image: none;
--wiki-sidebar-list-item-background--hover: none;
--wiki-sidebar-list-item-border-image--hover: none;
--wiki-sidebar-list-item-spacing: 0px;
--wiki-sidebar-icon-to-link-filter: var(--wiki-icon-to-link-filter);
--wiki-sidebar-offset: 0px; /* Vertical offset */
--wiki-sidebar-box-padding: 0px;
--wiki-sidebar-box-background: none;
--wiki-sidebar-box-border: 0px;
--wiki-sidebar-box-border-radius: 0px;
--wiki-sidebar-box-border-image: none;
--wiki-accent-color--hover: color-mix(in srgb, var(--wiki-accent-color) 90%, var(--wiki-accent-label-color));
--wiki-footer-border-width: var(--wiki-content-border-width);
--wiki-footer-border-style: var(--wiki-content-border-style);
--wiki-footer-border-color: var(--wiki-content-border-color);
--wiki-footer-background-color: var(--wiki-content-background-color);
--wiki-footer-background-opacity: var(--wiki-content-background-opacity);
--wiki-footer-backdrop-filter: var(--wiki-content-backdrop-filter);
--wiki-footer-text-color: var(--wiki-content-text-color);
--wiki-footer-link-color: var(--wiki-content-link-color);
--wiki-footer-link-color--hover: var(--wiki-content-link-color--hover);
--wiki-footer-border-radius: var(--wiki-content-border-radius);
--wiki-navigation-background-opacity: var(--wiki-navigation-selected-background-opacity);
--wiki-navigation-background-color--hover: var(--wiki-navigation-background-color);
--wiki-navigation-background-opacity--hover: var(--wiki-navigation-background-opacity);
--wiki-navigation-background-image--hover: var(--wiki-navigation-background-image);
--wiki-navigation-background-position--hover: var(--wiki-navigation-background-position);
--wiki-navigation-background-repeat--hover: var(--wiki-navigation-background-repeat);
--wiki-navigation-background-size--hover: var(--wiki-navigation-background-size);
--wiki-navigation-text-color--hover: var(--wiki-content-link-color--hover);
--wiki-navigation-transform--hover: none;
--wiki-navigation-selected-border-style: solid;
--wiki-navigation-selected-background-opacity: var(--wiki-content-background-opacity);
--wiki-navigation-border-style: solid;
--wiki-navigation-border-color--hover: var(--wiki-navigation-border-color);
--wiki-navigation-border-image--hover: var(--wiki-navigation-border-image);
--wiki-navigation-border-bottom-color: var(--wiki-navigation-selected-border-color);
--wiki-navigation-border-bottom-color--hover: var(--wiki-navigation-border-color--hover); /* change this color to transparent to make it behave like a selected tab */
--wiki-navigation-border-bottom-style: var(--wiki-navigation-selected-border-style);
--wiki-navigation-border-bottom-width: calc(var(--wiki-is-navigation-inside-content, 0) * var(--wiki-navigation-selected-border-width, 1px) + (1 - var(--wiki-is-navigation-inside-content, 0)) * var(--wiki-content-border-width, 1px));
--wiki-navigation-icon-size: 1em;
--wiki-navigation-tab-padding-x--icon: var(--wiki-navigation-tab-padding-x);
--wiki-navigation-bottom-spacing: 0px; /* If you change this to greater than 0px, you should usually change the value of --wiki-navigation-selected-border-bottom-background to var(--wiki-navigation-border-bottom-color) */
--wiki-navigation-dropdown-background-color: var(--wiki-content-background-color);
--wiki-navigation-dropdown-background-opacity: var(--wiki-content-background-opacity);
--wiki-navigation-dropdown-border-color: var(--wiki-navigation-border-color);
--wiki-navigation-dropdown-offset: 0px; /* vertical offset */
--wiki-navigation-search-background-color: var(--wiki-content-background-color--secondary);
--wiki-navigation-search-background-image: none;
--wiki-navigation-search-background-position: 0;
--wiki-navigation-search-background-size: auto;
--wiki-navigation-search-background-repeat: repeat;
--wiki-navigation-search-backdrop-filter: none;
--wiki-navigation-search-border-color: var(--wiki-navigation-border-color);
--wiki-navigation-search-border-color--hover: var(--wiki-accent-color);
--wiki-navigation-search-border-style: solid;
--wiki-navigation-search-border-width: 1px;
--wiki-navigation-search-border-radius: 2px;
--wiki-navigation-search-border-image: none;
--wiki-navigation-search-border-image--hover: var(--wiki-navigation-search-border-image);
--wiki-navigation-search-box-shadow: none;
--wiki-navigation-search-box-shadow--hover: var(--wiki-navigation-search-box-shadow);
--wiki-navigation-search-text-color: var(--wiki-content-text-color);
--wiki-navigation-search-font-size: var(--wiki-navigation-font-size);
--wiki-navigation-search-height: 2em;
--wiki-navigation-search-button-color: currentColor;
--wiki-navigation-search-button-color--hover: var(--wiki-navigation-search-button-color);
--wiki-navigation-search-button-color-opacity: 80%;
--wiki-navigation-search-button-color-opacity--hover: 95%;
--wiki-navigation-search-bottom-spacing: 3px;
--wiki-navigation-search-highlight-background-color: color-mix(in srgb, var(--wiki-accent-color) 5%, transparent);
--wiki-navigation-gap-between-left-and-right: calc(max(0px, var(--wiki-navigation-tab-spacing))); /* minimum width between #left-navigation and #right-navigation before tabs start to collapse */
}
/*** mobile adjustments ***/
@media screen and (max-width: 720px) {
body.has-vector-mobile-menu{
--wiki-sidebar-offset: 0px; /* Vertical offset */
--wiki-sidebar-margin: 0px;
--wiki-sidebar-heading-background: none;
--wiki-sidebar-heading-border-image: none;
--wiki-sidebar-heading-margin: 0px 0px -0.5em 0px;
--wiki-sidebar-list-margin: 0px;
--wiki-sidebar-list-background: none;
--wiki-sidebar-list-border-image: none;
--wiki-sidebar-list-item-background: none;
--wiki-sidebar-list-item-border-image: none;
--wiki-sidebar-list-item-background--hover: none;
--wiki-sidebar-list-item-border-image--hover: none;
--wiki-sidebar-list-item-spacing: 0px;
--wiki-sidebar-line-height: 1.125;
--wiki-sidebar-background-opacity: 100%;
--wiki-navigation-search-border-width: 1px;
--wiki-logo-offset-x: 0px;
--wiki-logo-offset-y: 0px;
}
}
/*****************************
**** END SHARED VARIABLES ****
******************************/
/******************************************************************************************
********************************* End user-edit variables *********************************
******************************************************************************************/
/******************************
* Fallback for older browsers *
* DONT EDIT THIS *
*******************************/
@supports not (color:color-mix(in srgb, #000, transparent)) {
.view-dark,
.view-light,
:root {
--wiki-content-text-mix-color: var(--wiki-content-text-color);
--wiki-content-text-mix-color-95: var(--wiki-content-background-color);
--wiki-content-background-color--secondary: var(--wiki-content-dynamic-color--secondary--inverted);
--wiki-content-border-color--secondary: var(--wiki-content-border-color);
--wiki-content-border-color--accent: var(--wiki-accent-color);
--wiki-accent-color--hover: var(--wiki-accent-color);
--wiki-navigation-search-highlight-background-color: transparent;
}
}
/*****************************
* End older browser fallback *
******************************/
/*****************************
* PortableInfoboxes *
******************************/
:root {
--pi-background: var(--wiki-content-background-color);
--pi-secondary-background: var(--wiki-accent-color);
--pi-secondary-background-label: var(--wiki-accent-label-color);
--pi-border-color: color-mix(in srgb, var(--pi-secondary-background) 50%, transparent);
}
.portable-infobox .pi-title,
.portable-infobox .pi-header {
text-align: center;
font-size: 1.5em;
background: color-mix(in srgb, var(--pi-secondary-background) 75%, transparent);
color: var(--pi-secondary-background-label);
}
.portable-infobox .pi-data,
.portable-infobox .pi-group {
background: var(--wiki-content-background-color--secondary);
}
.portable-infobox .pi-image {
padding: 8px;
}
.pi-image-thumbnail {
max-width: 100%;
}
.pi-caption {
color: var(--wiki-content-text-mix-color);
}
.pi-section-navigation .pi-section-tab.pi-section-active,
.pi-section-navigation .pi-section-tab.current,
.pi-media-collection .pi-tab-link.current {
background: var(--pi-secondary-background);
color: var(--pi-secondary-background-label);
}
.pi-collapse > .pi-item:first-child {
cursor: pointer;
}
/* overqualify these to overwrite normal content heading styles */
.mw-body .portable-infobox h2,
.mw-body .portable-infobox h3 {
border-bottom: 0;
font-family: inherit;
font-weight: 700;
margin: 0;
}
/*****************************
* End PortableInfoboxes *
******************************/
/*******************
* Main page layout *
********************/
#mp-container {
display: grid;
gap: 10px;
clear:both; /* for .mw-indicators combined with NOTITLE */
}
@media screen and (max-width: 990px) {
/* for mobile screens */
#mp-container {
grid-template-areas:var(--main-page-layout--mobile);
grid-template-columns:var(--main-page-layout-columns--mobile, 100%);
}
.mp-box.mp-hide-on-mobile {
display: none;
}
}
@media screen and (min-width: 990px) and (max-width: 1350px) {
/* for narrow screens, between 990px and 1350px */
#mp-container {
grid-template-areas:var(--main-page-layout--tablet);
grid-template-columns:var(--main-page-layout-columns--tablet, 1fr 1fr);
}
.mp-box.mp-hide-on-tablet {
display: none;
}
}
@media screen and (min-width: 1350px) {
/* for all other screens, 1350px and wider */
#mp-container {
grid-template-areas:var(--main-page-layout--desktop);
grid-template-columns:var(--main-page-layout-columns--desktop, 2fr 1fr 2fr);
}
.mp-box.mp-hide-on-desktop {
display: none;
}
}
.mp-box {
position: relative;
display: flex;
flex-flow: column nowrap;
width: 100%;
box-sizing: border-box;
background: color-mix(in srgb, var(--wiki-content-background-color--secondary) 25%, transparent);
border: 1px solid var(--wiki-content-border-color);
padding: 0px;
}
.mp-body {
height: 100%;
display: flex;
padding: 0.5em;
flex-flow: column nowrap;
}
.mp-box.centered-content .mp-body {
height: 100%;
display: flex;
flex-flow: column nowrap;
justify-content: space-evenly;
}
.mp-box.has-floating-image {
display: block;
}
.mp-box.has-floating-image .mp-body {
height: unset;
display: block;
}
.mp-box.header-only {
border-bottom-width:0px;
}
.mp-box.header-only .mp-body {
display:none;
}
.mp-box.missing .mw-inputbox-input {
/* max-width doesn't override the input element's 'size' property, but that property does work as a max-width itself, so we can set width:100% for the same effect */
width:100% !important;
}
/* overqualified to override normal heading styles */
.mw-body .mp-box h2 {
text-align: center;
font-weight: bold;
font-family: var(--wiki-content-heading-font-family);
overflow: initial;
border-bottom: 1px solid var(--wiki-content-border-color);
font-size: 150%;
margin: 0;
padding: 5px 0;
color: var(--wiki-content-heading-color);
}
#mp-box-welcome {
text-align: center;
position: relative;
overflow: hidden;
}
#mp-box-welcome h2 {
font-size: 200%;
}
#mp-welcome {
display: flex;
flex-flow: column nowrap;
position: relative;
height: 100%;
z-index: 2;
box-sizing: border-box;
}
#mp-welcome .welcome-subtitle {
height: 100%;
background: color-mix(in srgb, var(--wiki-content-dynamic-color--inverted) 85%, transparent);
padding: 0.5em;
}
#mp-banner {
position: absolute;
width: 100%;
height: 100%;
filter: blur(5px);
z-index: -1;
background: url(/images/e/e0/MP_banner.jpg);
background-size: cover;
background-repeat: no-repeat;
background-position: top center;
}
.view-dark #mp-banner {
filter: blur(5px) brightness(50%);
}
.view-light #mp-banner {
filter: blur(5px) contrast(50%);
}
/* [[Template:MP_link]] */
.mp-links {
--gap: 10px;
}
.mp-links > ul {
display: flex;
flex-flow: row wrap;
justify-content: space-evenly;
margin: 2px;
gap: var(--gap);
}
.mp-links > ul > li {
display: flex;
flex-flow: column nowrap;
align-items: stretch;
text-align: center;
box-sizing: border-box;
flex: max(calc(50% - var(--gap)), 5em) 1 1;
outline: 1px solid var(--wiki-content-link-color);
transition: 0.1s ease-in;
}
.mp-links > ul > li:hover {
background-color: color-mix(in srgb, var(--wiki-content-link-color) 20%, transparent);
}
.mp-links.columns-1 > ul > li {flex: max(calc(100% - var(--gap)), 5em) 1 1;}
.mp-links.columns-2 > ul > li {flex: max(calc(50% - var(--gap)), 5em) 1 1;}
.mp-links.columns-3 > ul > li {flex: max(calc((100% / 3) - var(--gap)), 5em) 1 1;}
.mp-links.columns-4 > ul > li {flex: max(calc(25% - var(--gap)), 5em) 1 1;}
.mp-links.columns-5 > ul > li {flex: max(calc(20% - var(--gap)), 5em) 1 1;}
.mp-links.columns-6 > ul > li {flex: max(calc((100% / 6) - var(--gap)), 5em) 1 1;}
.mp-links.columns-7 > ul > li {flex: max(calc((100% / 7) - var(--gap)), 5em) 1 1;}
.mp-links.columns-8 > ul > li {flex: max(calc((100% / 8) - var(--gap)), 5em) 1 1;}
.mp-links.columns-max > ul > li {flex: max(calc(0% - var(--gap)), 5em) 1 1;}
.mp-links > ul > li:hover a {
text-decoration: underline;
}
.mp-links > ul > li > a {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
flex: 1 1 auto;
box-sizing: border-box;
padding: 5px;
}
.mp-links > ul > li > a:first-child {
height: 100%;
}
.mp-links > ul > li > a:last-child:not(:first-child) {
height: unset;
}
.mp-links.stretch,
.mp-links.stretch > ul {
height: 100%;
}
.mp-links.side-image li {
flex-flow: row nowrap;
}
.mp-links.plain > ul > li {
outline-color: transparent;
}
/***********************
* End main page layout *
************************/
/*********************************************************************************************************************
* Semantically-correct horizontal lists (for Module:Navbox, and they're more machine-readable than {{*}}-formatting) *
**********************************************************************************************************************/
.hlist dl,
.hlist ol,
.hlist ul {
margin: 0;
padding: 0;
}
/* Display list items inline */
.hlist dd,
.hlist dt,
.hlist li {
/*
* don't trust the note that says margin doesn't work with inline
* removing margin: 0 makes dds have margins again
* We also want to reset margin-right in Minerva
*/
margin: 0;
display: inline;
}
/* Display requested top-level lists inline */
.hlist.inline,
.hlist.inline dl,
.hlist.inline ol,
.hlist.inline ul,
/* Display nested lists inline */
.hlist dl dl,
.hlist dl ol,
.hlist dl ul,
.hlist ol dl,
.hlist ol ol,
.hlist ol ul,
.hlist ul dl,
.hlist ul ol,
.hlist ul ul {
display: inline;
}
/* Hide empty list items */
.hlist .mw-empty-li {
display: none;
}
/* TODO: :not() can maybe be used here to remove the later rule. naive test
* seems to work. more testing needed. like so: */
.hlist dt:not(:last-child)::after {
content: ":\20";
}
.hlist dd:not(:last-child)::after,
.hlist li:not(:last-child)::after {
/* "space, Middle Dot, space"
We use unicode numbers instead of the raw characters due to a Firefox encoding bug on unicode characters.
The space is also encoded because raw spaces combined with a unicode number strips the spaces under some conditions such as single-line lists */
/* content: "\20\00B7\20"; font-weight: bold; */
/* "space • space"
There may (and likely) be an extra whitespace between <li>s,
therefore we have to use a space character as last character of this sequence.
By this way, the last space and the next whitespace will collapse as a single space,
to make the whitespace on both sides of the middle dot the same width.
*/
content: "\20\A0\2022\A0\20";
font-weight: inherit;
}
/* Add parentheses around nested lists */
.hlist dd ol::before,
.hlist dd ul::before,
.hlist dd dl::before,
.hlist dt ol::before,
.hlist dt ul::before,
.hlist dt dl::before,
.hlist li ol::before,
.hlist li ul::before,
.hlist li dl::before {
content: "\20(";
font-weight: inherit;
}
.hlist dd ol::after,
.hlist dd ul::after,
.hlist dd dl::after,
.hlist dt ol::after,
.hlist dt ul::after,
.hlist dt dl::after,
.hlist li ol::after,
.hlist li ul::after,
.hlist li dl::after {
content: ")";
font-weight: inherit;
}
/* Put ordinals in front of ordered list items */
.hlist ol {
counter-reset: listitem;
}
.hlist ol > li {
counter-increment: listitem;
}
.hlist ol > li::before {
content: " " counter(listitem) ".\20";
}
/* Progressive enhancement:
* try to make the dot always follow the list item in same line
*/
.hlist :is(li,dt,dd):not(:has(:is(li,dt,dd))) {
display: inline-block;
}
/********************************************
* End semantically-correct horizontal lists *
*********************************************/
/*** Miscellaneous ***/
.responsive-image {
max-width: 100%;
height: auto;
box-sizing: border-box;
}
.view-dark .invert-on-dark,
.view-light .invert-on-light {
filter: invert(100%);
}
.pixelated {
image-rendering: pixelated;
}
@media screen and (min-width: 720px) {
.mobileonly {
display: none;
}
}
@media screen and (max-width: 720px) {
.nomobile {
display: none;
}
}
/*** Utility classes for standard MW galleries ***/
/* it's important that spaced comes before centered in the sheet */
.gallery.gallery.gallery.spaced { /* this selector looks ridiculous but is actually part of stock Vector and therefore a necessary override */
display: flex;
flex-flow: row wrap;
justify-content: space-evenly;
margin-left: unset;
}
.gallery.centered {
text-align: center;
}
/**************************
* Start Modular Templates *
**************************/
/********* [[Template:Ambox]] *********/
.ambox {
--ambox-color: var(--wiki-accent-color);
border: 1px solid var(--wiki-content-border-color);
border-left: 10px solid var(--ambox-color);
border-radius: 2px;
display: flex;
align-items: center;
gap: .6em;
margin: 1em 0;
padding: 3px .6em;
background-color: var(--wiki-content-background-color--secondary);
box-shadow: 2px 2px 5px 0px #0002;
}
@media (min-width: 720px) {
.ambox {
margin-inline: 10%;
}
}
.ambox.tiny {
padding: .04rem .5em;
margin-inline: 0;
width: fit-content;
}
.ambox + .ambox {
margin-top: -.6em;
}
.ambox-content {
flex: 1;
}
.ambox-content p {
margin: .15em 0;
}
.ambox-title {
font-weight: bold;
}
/********* [[Template:Hatnote]] *********/
.hatnote {
padding: 1px 0 1px 1.6em;
margin-bottom: 0.5em;
font-style: italic;
border-top: 1px solid var(--wiki-content-border-color--secondary);
border-bottom: 1px solid var(--wiki-content-border-color--secondary);
}
.hatnote.icon {
padding-left: 0;
}
/********* [[Template:Spoiler]] *********/
.spoiler-content {
background-color: color-mix(in srgb, var(--wiki-content-dynamic-color) 50%, transparent);
transition: all 0.3s;
cursor: pointer;
overflow: auto;
}
@supports not (color:color-mix(in srgb, #000, transparent)) {
.spoiler-content {
background-color: var(--wiki-content-dynamic-color--secondary);
}
}
.spoiler-content > * {
pointer-events: none;
opacity: 0;
transition: all 0.3s;
}
.spoiler-content.show {
background-color: transparent;
}
.spoiler-content.show > * {
pointer-events: unset;
opacity: 1;
}
/********* [[Template:Link icon]] *********/
.link-icon {
--link-icon-line-height: 1.5em;
--link-icon-size: 1.5em;
display: inline-flex;
align-items: center;
height: var(--link-icon-line-height);
vertical-align: bottom;
}
.link-icon .regular {
align-self: center;
}
.link-icon .regular a {
display: flex;
}
.link-icon .regular img {
height: var(--link-icon-size);
max-width: var(--link-icon-size);
}
.link-icon .fallback {
outline: 1px solid var(--wiki-content-text-color);
border-radius: 50%;
text-align: center;
width: var(--link-icon-size);
line-height: var(--link-icon-size);
}
.link-icon.notext,
.link-icon.notext .fallback {
display: inline-block;
}
/********* [[Template:Quote]] *********/
.quote {
background: var(--wiki-content-background-color--secondary);
border-radius: 5px;
border: 2px solid var(--wiki-content-border-color);
margin: .5em 0;
padding: .5em;
overflow-y: hidden;
}
.quote .block {
display: block;
}
.quote .title {
font-size: large;
font-weight: bold;
}
.quote .content {
font-style: italic;
}
.quote .author {
font-weight: bold;
text-align: end;
}
.quote .marks-wrapper {
display: flex;
gap: 5px;
}
.quote .marks-wrapper::before,
.quote .marks-wrapper::after {
font-size: 100px;
line-height: 0px;
}
.quote .marks-wrapper::before {
content: "\201C";
margin-top: 40px;
}
.quote .marks-wrapper::after {
content: "\201D";
align-self: end;
margin-bottom: -10px;
}
.client-js .mw-charinsert-item {
display: none;
}
/************************
* End Modular Templates *
*************************/
/*****************************
* Used by [[Template:Color]] *
******************************/
.color__splotch {
display: inline-block;
height: 1em;
width: 1em;
box-sizing: border-box;
vertical-align: text-top;
border-radius: 50%;
border: 1px solid var(--wiki-content-text-color);
}
/*********************
* End Template:Color *
**********************/
/*********************************
* Used by [[Template:TOC limit]] *
**********************************/
.toclimit-2 .toclevel-1 ul,
.toclimit-3 .toclevel-2 ul,
.toclimit-4 .toclevel-3 ul,
.toclimit-5 .toclevel-4 ul,
.toclimit-6 .toclevel-5 ul,
.toclimit-7 .toclevel-6 ul {
display: none;
}
/*************************
* End Template:TOC limit *
**************************/
/*********************************
* Used by [[Template:TOC right]] *
**********************************/
@media all and (min-width: 720px) {
.tocright {
float: right;
clear: right;
margin: 0 0 0.5em 1em;
}
}
/*************************
* End Template:TOC right *
**************************/
3c2719149e311061d3f79a029a2ca18b5995933a
MediaWiki:Theme-definitions
8
240
264
2025-11-02T00:44:57Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
* light[bundled|kind=light]
* dark[bundled|kind=dark]
05cdfdf87ea42919cc6ea267d3972cc06847ed60
MediaWiki:Gadgets/purge/main.js
8
241
265
2025-11-02T00:44:58Z
ARTIFICER
564804
Importing default loadout
javascript
text/javascript
$.when( $.ready )
.then(function(){
if ( document.getElementById( 'ca-cargo-purge' )){ return; } // disable if Cargo has already added a purge button
if ( mw.config.get( 'wgNamespaceNumber' ) === -1 ) { return; } // disable on special pages
var url = new URL(window.location.href);
url.searchParams.set('action', 'purge');
var button = mw.util.addPortletLink('p-cactions', url.href, mw.msg('cargo-purgecache'), 'ca-gadget-purgecache', mw.msg('action-purge'), '1');
button.addEventListener('click', (function(event) {
event.preventDefault();
var api = new mw.Api();
api.post({
action: 'purge',
titles: mw.config.get('wgPageName'),
forcerecursivelinkupdate: true
}).then(function() {
window.location.reload(true);
}).fail(function(code) {
mw.notify(mw.msg('cargo-purgecache-failed')+" "+code);
});
}));
});
5d10082771b97fa1ba479534a973769321d887dc
MediaWiki:Gadgets/userProfile/main.js
8
242
266
2025-11-02T00:44:58Z
ARTIFICER
564804
Importing default loadout
javascript
text/javascript
// User profile
// <nowiki>
mw.loader.using( [ 'mediawiki.util', 'mediawiki.api' ] ).done( function() {
var config = mw.config.get( [
'wgRelevantUserName',
'wgNamespaceNumber',
'wgUserLanguage',
'wgArticleId',
'wgAction',
'wgTitle'
] );
var username = config.wgRelevantUserName;
if ( !username || window.loadedHorseUserProfile ) return;
window.loadedHorseUserProfile = true;
if ( config.wgNamespaceNumber !== -1 && config.wgTitle.includes('/') ) return;
var lang = mw.language.bcp47(config.wgUserLanguage);
var dateOptions = {
year: "numeric",
month: "short",
day: "numeric",
hour: "2-digit",
minute: "2-digit",
timeZone: "UTC",
timeZoneName: "short"
};
var api = new mw.Api();
if ( mw.util.isIPAddress(username) ) api.get( {
action: 'query',
list: ['usercontribs', 'blocks'],
ucuser: username,
ucprop: [],
uclimit: 'max',
bkip: username,
bkprop: ['user', 'by', 'timestamp', 'expiry', 'flags', 'reason', 'restrictions'],
bklimit: 1,
formatversion: 2
} ).done( function(data) {
var editcount = data.query.usercontribs.length;
if ( data.continue && data.continue.uccontinue ) editcount = data.limits.usercontribs+'+';
var user = {
groups: ['*'],
editcount: editcount
};
formatProfile(user, data.query.blocks[0]);
} );
else api.get( {
action: 'query',
list: ['users', 'blocks'],
ususers: username,
usprop: ['groups', 'editcount', 'registration', 'emailable'],
bkusers: username,
bkprop: ['user', 'by', 'timestamp', 'expiry', 'flags', 'reason', 'restrictions'],
bklimit: 1,
formatversion: 2
} ).done( function(data) {
formatProfile(data.query.users[0], data.query.blocks[0]);
} );
if ( window.loadedHorseUserProfileContribs ) return;
window.loadedHorseUserProfileContribs = true;
if ( config.wgNamespaceNumber === 2 && !config.wgArticleId && config.wgAction === 'view' ) {
mw.loader.using( [ 'mediawiki.pager.styles', 'mediawiki.special.changeslist' ] ).then( function() {
var text = '== [[Special:Contributions/' + username + '|{{int:contributions-title|' + username + '}}]] ==\n{{Special:Contributions/' + username + '|limit=20}}';
new mw.Api().parse( text, {
title: 'User:' + config.wgTitle,
wrapoutputclass: 'horse-userprofile-contribs',
disableeditsection: true,
disablelimitreport: true,
uselang: config.wgUserLanguage
} ).done( function(parsedText) {
mw.hook( 'wikipage.content' ).fire(
$( parsedText ).appendTo('#mw-content-text')
);
} );
} );
}
function formatProfile(user, block) {
user.groups.splice(user.groups.indexOf('*'), 1);
var text = '<div class="horse-userprofile-info">';
if ( user.groups.length ) {
var groupList = user.groups.map( function(group) {
var grouppage = '{{MediaWiki:grouppage-'+group+'}}';
return [
'{{#ifexist: '+grouppage+' | [['+grouppage+'|{{int:group-'+group+'}}]] | {{int:group-'+group+'}} }}',
'{{#ifexist: '+grouppage+' | [['+grouppage+'|{{int:group-'+group+'-member|'+username+'}}]] | {{int:group-'+group+'-member|'+username+'}} }}'
];
} ).reduce( function(prev, cur) {
prev[0].push(cur[0]);
prev[1].push(cur[1]);
return prev;
}, [[], []] );
text += '\n\n<span>{{int:prefs-memberingroups|'+user.groups.length+'|'+username+'}}</span>\t<span>{{int:prefs-memberingroups-type|'+mw.language.listToText(groupList[0])+'|'+mw.language.listToText(groupList[1])+'}}</span>';
if (mw.config.get('wgUserGroups').some(item => ['advocate', 'staff'].includes(item))) { //return true if their usergroups contain advocate or staff
text += '<br/>([[Special:UserRights/' + username + '|{{int:tool-link-userrights|' + username + '}}]])'
}
}
text += '\n\n<span>{{int:prefs-edits}}</span>\t<span>[[Special:Contribs/'+username+'|'+mw.language.convertNumber(user.editcount)+']]</span>';
if ( user.registration ) text += '\n\n<span>{{int:prefs-registration}}</span>\t<span>'+mw.language.convertNumber(new Date(user.registration).toLocaleString(lang, dateOptions))+'</span>';
// if ( user.userid && !user.emailable ) text += '\n\n<span>{{int:nowikiemailtext|'+username+'}}</span>';
text += '\n\n</div>';
if ( block && !$('.mw-warning-with-logexcerpt .mw-logevent-loglines > .mw-logline-block').length ) {
var notice = 'sp-contributions-blocked-notice';
if ( mw.util.isIPAddress(block.user, true) ) notice += '-anon';
var logentry = 'logentry-block-block';
var partialBlock = [];
if ( block.partial ) {
notice += '-partial';
logentry = 'logentry-partialblock-block';
if ( block.restrictions.pages ) {
var blockpages = block.restrictions.pages.map( function(page) {
return '[['+page.title+']]';
} );
partialBlock.push('{{int:logentry-partialblock-block-page|'+blockpages.length+'|'+mw.language.listToText(blockpages)+'}}');
}
if ( block.restrictions.namespaces ) {
var blocknamespaces = block.restrictions.namespaces.map( function(namespace) {
if ( !namespace ) return '[[Special:AllPages|{{int:blanknamespace}}]]';
return '[[Special:AllPages/{{ns:'+namespace+'}}:|{{ns:'+namespace+'}}]]';
} );
partialBlock.push('{{int:logentry-partialblock-block-ns|'+blocknamespaces.length+'|'+mw.language.listToText(blocknamespaces)+'}}');
}
if ( block.restrictions.actions ) {
var blockactions = block.restrictions.actions.map( function(action) {
return '{{int:ipb-action-'+action+'}}';
} );
partialBlock.push('{{int:logentry-partialblock-block-action|'+blockactions.length+'|'+mw.language.listToText(blockactions)+'}}');
}
if ( !partialBlock.length ) logentry = 'logentry-non-editing-block-block';
}
var blockDate = new Date(block.timestamp);
var blockexpiry = '{{int:infiniteblock}}';
if ( !['infinite', 'indefinite', 'infinity', 'never'].includes(block.expiry) ) {
var expiry = new Date(block.expiry.replace( /(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2,3})/, '$1-$2-$3T$4:$5:$6Z' ));
var duration = expiry - blockDate;
var blockDuration = [];
var factor = 1000;
if ( duration % factor === 0 ) blockDuration = ['duration-seconds', Math.floor(duration / factor)];
factor *= 60;
if ( duration % factor === 0 ) blockDuration = ['duration-minutes', Math.floor(duration / factor)];
factor *= 60;
if ( duration % factor === 0 ) blockDuration = ['duration-hours', Math.floor(duration / factor)];
factor *= 24;
if ( duration % factor === 0 ) blockDuration = ['duration-days', Math.floor(duration / factor)];
if ( duration % (factor*7) === 0 ) blockDuration = ['duration-weeks', Math.floor(duration / (factor*7))];
if ( duration % (factor*30) === 0 ) blockDuration = ['months', Math.floor(duration / (factor*30))];
factor *= 365;
if ( duration % factor === 0 ) blockDuration = ['duration-years', Math.floor(duration / factor)];
if ( duration % (factor*10) === 0 ) blockDuration = ['duration-decades', Math.floor(duration / (factor*10))];
if ( duration % (factor*100) === 0 ) blockDuration = ['duration-centuries', Math.floor(duration / (factor*100))];
if ( duration % (factor*1000) === 0 ) blockDuration = ['duration-millennia', Math.floor(duration / (factor*1000))];
if ( blockDuration.length < 2 || blockDuration[1] > 1000 ) blockexpiry = mw.language.convertNumber(expiry.toLocaleString(lang, dateOptions));
else blockexpiry = '{{int:'+blockDuration.join('|')+'}}';
}
var blockflags = '';
var blockflaglist = [];
if ( block.anononly ) blockflaglist.push('{{int:block-log-flags-anononly}}');
if ( block.nocreate ) blockflaglist.push('{{int:block-log-flags-nocreate}}');
if ( !block.autoblock && !mw.util.isIPAddress(block.user, true) ) blockflaglist.push('{{int:block-log-flags-noautoblock}}');
if ( !block.allowusertalk ) blockflaglist.push('{{int:block-log-flags-nousertalk}}');
if ( block.noemail ) blockflaglist.push('{{int:block-log-flags-noemail}}');
if ( block.hidden ) blockflaglist.push('{{int:block-log-flags-hiddenname}}');
if ( blockflaglist.length ) blockflags = '{{int:parentheses|'+blockflaglist.join(mw.msg('comma-separator'))+'}}';
var blockreason = ' <span class="comment">{{int:parentheses|'+block.reason+'}}</span>';
if ( !block.reason ) blockreason = '';
text += '<div class="horse-userprofile-block cdx-message cdx-message--block cdx-message--warning mw-warning-with-logexcerpt"><span class="cdx-message__icon"></span><div class="cdx-message__content">\n{{int:'+notice+'|'+username+'}}\n';
text += '<ul class="mw-logevent-loglines"><li class="mw-logline-block">'+mw.language.convertNumber(blockDate.toLocaleString(lang, dateOptions))+' {{int:'+logentry+'|[[User:'+block.by+'|'+block.by+']] <span class="mw-usertoollinks mw-changeslist-links"><span>[[User talk:'+block.by+'|{{int:talkpagelinktext}}]]</span> <span>[[Special:Contribs/'+block.by+'|{{int:contribslink}}]]</span></span>|'+block.by;
if ( mw.util.isIPAddress(block.user, true) ) text += '|[[Special:Contribs/'+block.user+'|'+block.user+']] <span class="mw-usertoollinks mw-changeslist-links"><span>[[User talk:'+block.user+'|{{int:talkpagelinktext}}]]</span></span>';
else text += '|[[User:'+block.user+'|'+block.user+']] <span class="mw-usertoollinks mw-changeslist-links"><span>[[User talk:'+block.user+'|{{int:talkpagelinktext}}]]</span> <span>[[Special:Contribs/'+block.user+'|{{int:contribslink}}]]</span></span>';
text += '|'+block.user+'|'+blockexpiry+'|'+blockflags+'|'+mw.language.listToText(partialBlock)+'}}'+blockreason+'</li></ul></div></div>';
}
api.parse( '<div class="cdx-message__content">' + text + '</div>', {
disablelimitreport: true,
wrapoutputclass: 'horse-userprofile mw-message-box cdx-message mw-content-'+($('#mw-content-subtitle').attr('dir')||'ltr'),
uselang: config.wgUserLanguage
} ).done( function(parsedText) {
parsedText = parsedText.replace( /\u29FCgroup-([^\u29FC\u29FD]+?)(?:-member)?\u29FD/g, '$1' );
mw.hook( 'wikipage.content' ).fire(
$( parsedText ).appendTo('#contentSub')
);
} );
}
} );
// </nowiki>
65e00afacc077b14c908f3ff6280e3518f99a5b1
MediaWiki:Gadgets/userProfile/main.css
8
243
267
2025-11-02T00:44:58Z
ARTIFICER
564804
Importing default loadout
css
text/css
#contentSub > * + .horse-userprofile {
margin-top: 1em;
}
.horse-userprofile {
font-size: 120%;
color: var(--wiki-content-text-color);
border: 2px solid var(--wiki-content-border-color);
padding: 6px 12px;
}
.horse-userprofile-info span:first-of-type {
font-weight: bold;
}
1729445bb17e2974426befaf9bd441ab4bf189c5
MediaWiki:Gadgets/uploadMultipleFiles/main.js
8
244
268
2025-11-02T00:44:58Z
ARTIFICER
564804
Importing default loadout
javascript
text/javascript
/* Modified version of https://dev.fandom.com/wiki/UploadMultipleFiles
* from https://terraria.wiki.gg/wiki/MediaWiki:Gadget-uploadMultipleFiles.js */
$.when( mw.loader.using( ['site', 'mediawiki.util', 'mediawiki.api', 'mediawiki.jqueryMsg'] ), $.ready )
.then( () => new mw.Api().loadMessagesIfMissing([
'gadget-uploadMultipleFiles-multiupload',
'gadget-uploadMultipleFiles-yes',
'gadget-uploadMultipleFiles-no',
'gadget-uploadMultipleFiles-sourcefiles',
'gadget-uploadMultipleFiles-categoryname',
'gadget-uploadMultipleFiles-categorynamehint',
'gadget-uploadMultipleFiles-categorynamespace',
'gadget-uploadMultipleFiles-uploadfiles',
'gadget-uploadMultipleFiles-nofiles',
'gadget-uploadMultipleFiles-nolicense',
'gadget-uploadMultipleFiles-summary',
'gadget-uploadMultipleFiles-license',
'gadget-uploadMultipleFiles-categories',
'gadget-uploadMultipleFiles-uploading',
'gadget-uploadMultipleFiles-uploaded',
'gadget-uploadMultipleFiles-failed',
'gadget-uploadMultipleFiles-done',
'gadget-uploadMultipleFiles-ratelimited',
]) )
.then(function(){
if (mw.config.get("wgCanonicalSpecialPageName") !== "Upload"){ return; }
if (window.__wgg_UploadMultipleFiles_IsLoaded) { return; }
window.__wgg_UploadMultipleFiles_IsLoaded = true;
const getUploadDescription = function() {
var sections = [];
var summary = $("#wpUploadDescription").val();
var licenseDisplayName = $("#wpLicense option:selected").val();
var categoryName = $("#multiFileCategory").val();
if (summary !== ""){
sections.push(summary);
}
if (licenseDisplayName !== "") {
var licenseTemplateText = $("#wpLicense option:selected").prop("title");
sections.push("== " + mw.msg("gadget-uploadMultipleFiles-license") + " ==\n" + licenseTemplateText);
}
if (categoryName !== "")
sections.push("[[" + mw.msg("gadget-uploadMultipleFiles-categorynamespace") + ":" + categoryName + "]]");
return sections.join("\n\n");
};
const getWatchlistPreference = function() {
if ($("#wpWatchthis").is(":checked")) {
return "watch";
} else {
return "nochange";
}
};
$("#wpUploadFile").parent().parent().addClass("regularFileSelect");
$("tr.regularFileSelect").before(
$("<tr></tr>").append(
$('<td class="mw-label"></td>').msg("gadget-uploadMultipleFiles-multiupload"),
$('<td class="mw-input"></td>').append(
$("<label></label>").msg("gadget-uploadMultipleFiles-yes").prepend('<input type="radio" name="multipleFiles" value="yes" /> '),
' ',
$("<label></label>").msg("gadget-uploadMultipleFiles-no" ).prepend('<input type="radio" name="multipleFiles" value="no" checked/> '),
)
)
).after(
$('<tr class="multipleFileSelect" style="display:none;"></tr>').append(
$('<td class="mw-label"></td>').msg("gadget-uploadMultipleFiles-sourcefiles"),
$('<td class="mw-input"></td>').append('<input type="file" id="multiupload" multiple />')
)
);
$("input[name='wpUpload']").addClass("regularFileSelect");
$("#wpDestFile").parent().parent().addClass("regularFileSelect");
$("#wpIgnoreWarning").parent().parent().addClass("regularFileSelect");
// Append "category name" textbox to multiupload section
$("#mw-upload-form #mw-htmlform-description tbody").append(
$('<tr class="mw-htmlform-field-HTMLTextField multipleFileSelect" style="display:none;"></tr>').append(
$('<td class="mw-label"></td>').append('<label for="multiFileCategory"><abbr title="' + mw.msg("gadget-uploadMultipleFiles-categorynamehint") + '">' + mw.msg("gadget-uploadMultipleFiles-categoryname") + '</abbr></label>'),
$('<td class="mw-input"></td>').append('<input id="multiFileCategory" name="multiFileCategory" size="60">')
)
);
$("input[name='wpUpload']").after('<input type="button" value="' + mw.msg("gadget-uploadMultipleFiles-uploadfiles") + '" class="multipleFileSelect" style="display:none;" id="multiFileSubmit" />');
$("input[name='multipleFiles']").change(function() {
if (this.value === 'yes') {
$(".regularFileSelect").hide();
$(".multipleFileSelect").show();
} else {
$(".regularFileSelect").show();
$(".multipleFileSelect").hide();
}
});
$("#multiFileSubmit").click(function() {
var files = $("#multiupload")[0].files;
// Cancel upload if no files are selected
if (files.length === 0) {
alert(mw.msg("gadget-uploadMultipleFiles-nofiles"));
return false;
}
// Cancel upload if no license is selected
if ($("#wpLicense option:selected").val() === "" && !mw.config.get("UMFBypassLicenseCheck")) {
alert(mw.msg("gadget-uploadMultipleFiles-nolicense"));
return false;
}
// Description is summary + license + category
var description = getUploadDescription();
var watch = getWatchlistPreference();
$("#firstHeading").msg("gadget-uploadMultipleFiles-uploading");
$("#mw-content-text").html("<h3>" + mw.msg("gadget-uploadMultipleFiles-uploaded") + "</h3><ul></ul><div style='display:none;' id='multiUploadFailed'><h3>" + mw.msg("gadget-uploadMultipleFiles-failed") + "</h3><ul></ul></div>");
var currentFileIdx = 0;
var uploadCurrentFile;
uploadCurrentFile = function() {
if (currentFileIdx > files.length) {
$("#mw-content-text").append($("<h3></h3>").msg("gadget-uploadMultipleFiles-done"));
return;
}
if (files[currentFileIdx] === undefined) {
currentFileIdx++;
uploadCurrentFile();
return;
}
fd = new FormData();
fd.append("action", "upload");
fd.append("token", mw.user.tokens.get("csrfToken"));
fd.append("filename", files[currentFileIdx].name);
fd.append("file", files[currentFileIdx]);
fd.append("text", description);
fd.append("watchlist", watch);
fd.append("ignorewarnings", 1);
fd.append("format", "json");
const $output = $("#mw-content-text > ul");
const $failed = $("#multiUploadFailed");
const $failedOutput = $('#multiUploadFailed ul');
$.ajax({
url: mw.util.wikiScript("api"),
method: "POST",
data: fd,
cache: false,
contentType: false,
processData: false,
type: "POST"
}).done(function(d) {
if (d.error == undefined) {
$output.append('<li><a href="' + d.upload.imageinfo.descriptionurl + '" target="_blank">' + d.upload.filename + '</a></li>');
}
// specific catch for ratelimiting
else if(d.error.code === "ratelimited") {
timer = 60;
console.log(mw.msg('gadget-uploadMultipleFiles-ratelimited', timer));
$message = $('<li class="multiUploadActive"></li>').msg('gadget-uploadMultipleFiles-ratelimited', $('<span id="rateLimitCounter">' + timer + '</span>'));
$output.append($message);
var countdown = setInterval(function(){
// count the timer down, and remove at 0
timer -= 1;
document.getElementById('rateLimitCounter').textContent = timer;
if (timer <= 0) {
$message.remove()
clearInterval(countdown);
}
}, 1000);
setTimeout(function(){
// redundant clearing of the interval and message in case of race conditions
clearInterval(countdown);
$message.remove();
uploadCurrentFile();
}, timer * 1000);
return;
}
// generic fallback
else {
$failedOutput.append('<li>' + files[currentFileIdx].name + ': ' + d.error.info + '</li>');
$failed.show();
}
currentFileIdx++;
uploadCurrentFile();
}).fail(function() {
$failedOutput.append('<li>' + files[currentFileIdx].name + '</li>');
$failed.show();
currentFileIdx++;
uploadCurrentFile();
});
};
uploadCurrentFile();
});
});
f47e56dc31399578758f15aafbdf732564a80bd3
MediaWiki:Licenses
8
245
269
2025-11-02T00:44:59Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
*Game content
** License|game|This contains content from the game or its official media
*Commonly used
** License|fairuse|This will be used in a way that qualifies as "fair use" under US law
** License|CC0|This file is licensed under the CC0 1.0 License
** License|CC-BY-NC-ND|This is licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 License
** License|CC-BY-NC-SA|This is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License
** License|CC-BY-NC|This is licensed under the Creative Commons Attribution-NonCommercial 3.0 License
** License|CC-BY-ND|This is licensed under the Creative Commons Attribution-NoDerivs 3.0 License
** License|CC-BY-SA|This is licensed under the Creative Commons Attribution-ShareAlike 3.0 License
** License|permission|The copyright holder gave permission to use this work only in wiki.gg articles
** License|CC-BY|This is licensed under the Creative Commons Attribution 3.0 License
** License|CC-PD|This is in the public domain
** License|CC-SRR|This is licensed under the Creative Commons Some Rights Reserved License
*Unsure or unknown
** License|nolicense|I don't know the license
80cf31331a258a3fc3651f6d5961fbb5c1822cee
MediaWiki:Copyright
8
246
270
2025-11-02T00:44:59Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
{{int:wikigg-copyright|CC BY-SA 4.0|$1}}
999f12b472b0177c515e14cda21d5e4ddc0603e1
MediaWiki:Mainpage
8
247
271
2025-11-02T00:45:00Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
{{SITENAME}}
3879910e8b355a24373fd09ccc909145b2639907
MediaWiki:Apioutput.css
8
248
272
2025-11-02T00:45:01Z
ARTIFICER
564804
Importing default loadout
css
text/css
/* All CSS here is applied on api.php pages */
@media (prefers-color-scheme: dark) {
body {
background-color:#20211f;
border-color: #7b7261;
color: #f6ecdb;
}
h1, h2, h3, h4, h5, h6 {
color: rgb(234, 224, 207);
border-color: rgb(83, 84, 81);
}
.mw-highlight .s2 {
color: rgb(206, 99, 91);
}
a {
color: rgb(133, 180, 221);
}
a:visited {
color: rgb(141, 127, 218);
}
pre, code, .mw-code {
background-color: rgb(34, 35, 33);
color: rgb(234, 224, 207);
border-color: rgb(63, 64, 62);
}
}
c95cf2c22c12d821f22b745f2aa78d4f6f711500
MediaWiki:Gadgets/hoverShowSpoilers/main.css
8
249
273
2025-11-02T00:45:01Z
ARTIFICER
564804
Importing default loadout
css
text/css
.spoiler-content:hover > * {
pointer-events:unset;
opacity: 1;
}
.spoiler-content:hover {
background-color: transparent;
}
1c73aafcb749d7e0e9107c1045310d2af70aae7e
MediaWiki:Common.css/doc
8
250
274
2025-11-02T00:45:02Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<div class="mw-parser-output" id="dl-variable-doc"><!-- hide this in your global.css if you're familiar with how default loadout works and this documentation is just in your way -->
<h2>Documentation</h2>
This wiki is using the theming template from the [[dlw:|default loadout]]. This template is intended to minimize the work required to create a custom colored version of the standard [[mw:Skin:Vector|Vector]] skin, while maximizing the various nooks and crannies that those colors reach, all while keeping everything legible and matching.
Please be aware of the [[support:Customization policy|customization policy]] when modifying the theme.
<h3>Themes</h3>
The [[support:Theme Toggle|Theme Toggle]] extension is installed, and allows multiple themes to be used. In the actual stylesheet below this documentation, you'll find two huge rules at the top, each containing lots of [https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties CSS color variables]. They look like this:
<syntaxhighlight lang=css>
:root,
/* Begin light styles, delete from here to "end light styles" if you don't want your wiki to support any light themes (remove from [[Mediawiki:Theme-definitions]] too, or ask wiki.gg staff for help doing this) */
/* FYI: .view- will affect any theme marked |kind=light, */
/* individual themes are prefixed with .theme- instead */
.view-light {
/**********************
* Probably edit these * [ LIGHT VIEW ]
***********************/
--wiki-body-background-color: #F6F6F6;
--wiki-body-background-image: url(filepath://Site-background.jpg);
/* and so on */
}
.view-dark {
/**********************
* Probably edit these * [ DARK VIEW ]
***********************/
--wiki-body-background-color: #171717;
--wiki-body-background-image: url(filepath://Site-background-dark.jpg);
/* and so on */
}
</syntaxhighlight>
These are the standard light and dark themes, defined in [[Mediawiki:Theme-definitions]]. '''Important''': if you want your wiki to only support a single theme, edit that page and remove the line you don't want (don't remove both). The <code>:root</code> selector is a fallback, meaning that in case something happens and Theme Toggle fails to work, the following theme will still mostly work. If you have multiple themes, you can move the <code>:root</code> rule to whichever you'd consider the "default" theme.
<h3>Non-color variables</h3>
{| class="wikitable"
! Variable name !! Notes
|-
| --wiki-body-background-image
| This is the image path to the wiki's background image. Usually this is uploaded to File:Site-background.jpg, File:Site-background-light.jpg, and/or File:Site-background-dark.jpg. While there's not a hard file size limit, it is recommended that this not exceed 250 KB. File size can be reduced by resizing (anything over 2560x1440p is excessive), converting to a jpg, and compressed using sites like [https://tinypng.com TinyPNG].
|-
| --wiki-body-background-position
| The [https://developer.mozilla.org/en-US/docs/Web/CSS/background-position background-position] of the background image. Usually this is set to <code>top center</code>.
|-
| --wiki-body-background-size
| The [https://developer.mozilla.org/en-US/docs/Web/CSS/background-size background-size] of the background image. Usually this is set to <code>cover</code>.
|-
| --wiki-body-background-repeat
| The [https://developer.mozilla.org/en-US/docs/Web/CSS/background-repeat background-repeat] of the background image. Usually this is set to <code>no-repeat</code>.
|-
| --wiki-body-background-attachment
| The [https://developer.mozilla.org/en-US/docs/Web/CSS/background-attachment background-attachment] of the background image. Usually this is set to <code>fixed</code>.
|-
| --wiki-body-font-family
| The font family of most of the wiki, such as the sidebar, navigation, and content text. Usually this is sans-serif. If modifying this, use a simple font that is easy to read. See <code>--wiki-content-heading-font-family</code> if you want to incorporate a more decorative font into the theme.
|-
| --wiki-content-heading-font-family
| The font family of headings, such as the page title and section headings. This font is usually displayed in a larger size, so it's safer to use a more decorative font than <code>--wiki-body-font-family</code>, but still try to keep it legible.
|-
| --wiki-sidebar-heading-font-family
| The font family of sidebar headings. In contrast to <code>--wiki-content-heading-font-family</code>, this is usually displayed in a smaller size, so keep it simple and easy to read.
|-
| --wiki-sidebar-border-radius
| The [https://developer.mozilla.org/en-US/docs/Web/CSS/border-radius border-radius] of the sidebar. If <code>--wiki-sidebar-portal-spacing</code> is set to 0, then only the top and bottom corners of the sidebar as a whole will be affected, otherwise every portal will have all its corners affected. Units must be specified even if this is set to 0.
|-
| --wiki-sidebar-portal-spacing
| The space between each portal in the sidebar. Units must be specified even if this is set to 0.
|-
| --wiki-content-border-width
| The thickness of the border around the content area.
|-
| --wiki-sidebar-border-width
| The thickness of the border around the sidebar portals.
|-
| --wiki-content-background-opacity
| The opacity of the main content area, to let the wiki's background image show through. Please keep this high, usually above 90%, or it can make reading text difficult.
|-
| --wiki-sidebar-background-opacity
| The background opacity of the sidebar. Usually this inherits <code>--wiki-content-background-opacity</code>.
|-
| --wiki-icon-general-filter
| A filter applied to many icons to make them visible on dark themes. Usually this is just <code>invert(100%)</code> on dark themes and blank on light themes.
|-
| --wiki-icon-to-link-filter
| A filter that converts many icons into the same color as <code>--wiki-content-link-color</code>. This can be generated by plugging that into https://mrpie5.gitlab.io/css-filter-generator/.
|}
<h3>List of all colors with contrast checking</h3>
The table below shows all the colors currently in use, as well as notes on how to use them. The last column shows which colors are expected to show up as text against other colors. With the exception of <code>--wiki-content-text-mix-color-95</code>, all text in the last column should be ''clearly'' legible. If it is not, you may need to adjust one of the referenced colors in your color palette.
Keep in mind that changes to the opacity variables in the section above will cause the content and sidebar background colors to mix with the body background color/image, so the contrasts below may not be perfectly accurate.
{| class="wikitable"
! Variable name !! Color !! style="width: 40em;" | Notes !! Test contrast against these variables
|-
| --wiki-body-background-color
| style="background-color:var(--wiki-body-background-color);" |
| The background color behind the background image. This usually only shows up if the background image doesn't load, doesn't fill the screen, or has some transparency. This color should be similar to the overall color of the background image, or the top-left corner if it is made up of many different colors. In the former case, https://matkl.github.io/average-color/ is helpful.
| style="background-color:var(--wiki-body-background-color);" |
<span style="color:var(--wiki-body-dynamic-color);">--wiki-body-dynamic-color</span><br/>
<span style="color:var(--wiki-body-dynamic-color--secondary);">--wiki-body-dynamic-color--secondary</span><br/>
|-
| --wiki-body-dynamic-color
| style="background-color:var(--wiki-body-dynamic-color);" |
| This is expected to contrast sharply with the body-background-color, for cases when text needs to be displayed against it. Usually this is {{color|#000}} on light themes and {{color|#fff}} on dark themes.
| style="background-color:var(--wiki-body-dynamic-color);" |
<span style="color:var(--wiki-body-background-color)">--wiki-body-background-color</span><br/>
<span style="color:var(--wiki-body-dynamic-color--inverted);">--wiki-body-dynamic-color--inverted</span><br/>
<span style="color:var(--wiki-body-dynamic-color--secondary--inverted);">--wiki-body-dynamic-color--secondary--inverted</span><br/>
|-
| --wiki-body-dynamic-color--inverted
| style="background-color:var(--wiki-body-dynamic-color--inverted);" |
| The inverse of <code>--wiki-body-dynamic-color</code>. This should optimally have almost no contrast with the body-background-color.
| style="background-color:var(--wiki-body-dynamic-color--inverted);" |
<span style="color:var(--wiki-body-dynamic-color);">--wiki-body-dynamic-color</span><br/>
<span style="color:var(--wiki-body-dynamic-color--secondary);">--wiki-body-dynamic-color--secondary</span><br/>
|-
| --wiki-body-dynamic-color--secondary
| style="background-color:var(--wiki-body-dynamic-color--secondary);" |
| A slightly different version of body-dynamic-color. Usually this is {{color|#333}} on light themes and {{color|#ccc}} on dark themes.
| style="background-color:var(--wiki-body-dynamic-color--secondary);" |
<span style="color:var(--wiki-body-background-color)">--wiki-body-background-color</span><br/>
<span style="color:var(--wiki-body-dynamic-color--inverted);">--wiki-body-dynamic-color--inverted</span><br/>
<span style="color:var(--wiki-body-dynamic-color--secondary--inverted);">--wiki-body-dynamic-color--secondary--inverted</span><br/>
|-
| --wiki-body-dynamic-color--secondary--inverted
| style="background-color:var(--wiki-body-dynamic-color--secondary--inverted);" |
| The inverse of <code>--wiki-body-dynamic-color--secondary</code>.
| style="background-color:var(--wiki-body-dynamic-color--secondary--inverted);" |
<span style="color:var(--wiki-body-dynamic-color);">--wiki-body-dynamic-color</span><br/>
<span style="color:var(--wiki-body-dynamic-color--secondary);">--wiki-body-dynamic-color--secondary</span><br/>
|-
| --wiki-content-background-color
| style="background-color:var(--wiki-content-background-color);" |
| The background color of the main content area.
| style="background-color:var(--wiki-content-background-color);" |
<span style="color:var(--wiki-content-text-color)">--wiki-content-text-color</span><br/>
<span style="color:var(--wiki-content-link-color)">--wiki-content-link-color</span><br/>
<span style="color:var(--wiki-content-link-color--visited)">--wiki-content-link-color--visited</span><br/>
<span style="color:var(--wiki-content-link-color--hover)">--wiki-content-link-color--hover</span><br/>
<span style="color:var(--wiki-content-redlink-color)">--wiki-content-redlink-color</span><br/>
<span style="color:var(--wiki-content-text-mix-color)">--wiki-content-text-mix-color</span><br/>
<span style="color:var(--wiki-content-dynamic-color)">--wiki-content-dynamic-color</span><br/>
<span style="color:var(--wiki-content-dynamic-color--secondary)">--wiki-content-dynamic-color--secondary</span><br/>
<span style="color:var(--wiki-content-heading-color)">--wiki-content-heading-color</span><br/>
<span style="color:var(--wiki-accent-color)">--wiki-accent-color</span><br/>
<span style="color:var(--wiki-neutral-color)">--wiki-neutral-color</span><br/>
<span style="color:var(--wiki-success-color)">--wiki-success-color</span><br/>
<span style="color:var(--wiki-alert-color)">--wiki-alert-color</span><br/>
|-
| --wiki-content-background-color--secondary
| style="background-color:var(--wiki-content-background-color--secondary);" |
| A secondary content background to highlight certain things. Usually this is <code>--wiki-content-background-color</code> with saturation and/or value reduced or increased by about 10%, but you're free to make it whatever you want provided the contrast checks to the right still pass.
| style="background-color:var(--wiki-content-background-color--secondary);" |
<span style="color:var(--wiki-content-text-color)">--wiki-content-text-color</span><br/>
<span style="color:var(--wiki-content-link-color)">--wiki-content-link-color</span><br/>
<span style="color:var(--wiki-content-link-color--visited)">--wiki-content-link-color--visited</span><br/>
<span style="color:var(--wiki-content-link-color--hover)">--wiki-content-link-color--hover</span><br/>
<span style="color:var(--wiki-content-redlink-color)">--wiki-content-redlink-color</span><br/>
<span style="color:var(--wiki-content-text-mix-color)">--wiki-content-text-mix-color</span><br/>
<span style="color:var(--wiki-content-dynamic-color)">--wiki-content-dynamic-color</span><br/>
<span style="color:var(--wiki-content-dynamic-color--secondary)">--wiki-content-dynamic-color--secondary</span><br/>
<span style="color:var(--wiki-content-heading-color)">--wiki-content-heading-color</span><br/>
<span style="color:var(--wiki-accent-color)">--wiki-accent-color</span><br/>
<span style="color:var(--wiki-neutral-color)">--wiki-neutral-color</span><br/>
<span style="color:var(--wiki-success-color)">--wiki-success-color</span><br/>
<span style="color:var(--wiki-alert-color)">--wiki-alert-color</span><br/>
|-
| --wiki-content-border-color
| style="background-color:var(--wiki-content-border-color);" |
| Border color for the main content area and elements within it.
| N/A
|-
| --wiki-content-border-color--secondary
| style="background-color:var(--wiki-content-border-color--secondary);" |
| A secondary content border color for elements that do not need to stand out as much. Usually this is <code>--wiki-content-border-color</code> with 50% transparency, but it can be adjusted or made identical if it is too subtle.
| N/A
|-
| --wiki-content-border-color--accent
| style="background-color:var(--wiki-content-border-color--accent);" |
| A border color that is used as an accent. Usually this is <code>--wiki-accent-color</code> with 50% transparency, but it can be any variation of the accent color.
| N/A
|-
| --wiki-content-text-color
| style="background-color:var(--wiki-content-text-color);" |
| Text color for the main content area.
| style="background-color:var(--wiki-content-text-color);" |
<span style="color:var(--wiki-content-background-color)">--wiki-content-background-color</span><br/>
<span style="color:var(--wiki-content-background-color--secondary)">--wiki-content-background-color--secondary</span><br/>
|-
| --wiki-content-link-color
| style="background-color:var(--wiki-content-link-color);" |
| Links within the content area. Please do not make this red, as red links on wikis traditionally denote pages that don't exist.
| style="background-color:var(--wiki-content-link-color);" |
<span style="color:var(--wiki-content-link-label-color);">--wiki-content-link-label-color</span>
|-
| --wiki-content-link-label-color
| style="background-color:var(--wiki-content-link-label-color);" |
| This is used when placing text on an element with the link color as a background, such as a button.
| style="background-color:var(--wiki-content-link-label-color);" |
<span style="color:var(--wiki-content-link-color);">--wiki-content-link-color</span>
|-
| --wiki-content-link-color--visited
| style="background-color:var(--wiki-content-link-color--visited);" |
| The color of visited links. This is optional, and usually inherits <code>--wiki-content-link-color</code>.
| style="background-color:var(--wiki-content-link-color--visited);" |
<span style="color:var(--wiki-content-background-color);">--wiki-content-background-color</span><br/>
<span style="color:var(--wiki-content-background-color--secondary);">--wiki-content-background-color--secondary</span>
|-
| --wiki-content-link-color--hover
| style="background-color:var(--wiki-content-link-color--hover);" |
| The color links change to when hovered over. This is optional, and usually inherits <code>--wiki-content-link-color</code>.
| style="background-color:var(--wiki-content-link-color--hover);" |
<span style="color:var(--wiki-content-background-color);">--wiki-content-background-color</span><br/>
<span style="color:var(--wiki-content-background-color--secondary);">--wiki-content-background-color--secondary</span>
|-
| --wiki-content-redlink-color
| style="background-color:var(--wiki-content-redlink-color);" |
| The color of links to pages that don't exist. Since these should only rarely be seen, you can be a little lax about choosing a color that contrasts with the background, but it should still be legible.
| style="background-color:var(--wiki-content-redlink-color);" |
<span style="color:var(--wiki-content-background-color);">--wiki-content-background-color</span><br/>
<span style="color:var(--wiki-content-background-color--secondary);">--wiki-content-background-color--secondary</span>
|-
| --wiki-content-text-mix-color
| style="background-color:var(--wiki-content-text-mix-color);" |
| A mix of <code>--wiki-content-text-color</code> and <code>--wiki-content-background-color</code>, calculated automatically. This is generally used to mark disabled elements or placeholder text.
| style="background-color:var(--wiki-content-text-mix-color);" |
<span style="color:var(--wiki-content-background-color)">--wiki-content-background-color</span><br/>
<span style="color:var(--wiki-content-background-color--secondary)">--wiki-content-background-color--secondary</span><br/>
<span style="color:var(--wiki-content-text-mix-color-95)">--wiki-content-text-mix-color-95</span>
|-
| --wiki-content-text-mix-color-95
| style="background-color:var(--wiki-content-text-mix-color-95);" |
| The same as <code>--wiki-content-text-mix-color</code>, but the mix is 95% <code>--wiki-content-background-color</code>, calculated automatically. This is used to mark disabled elements. The contrast checker to the right should actually be very hard to read but not impossible.
| style="background-color:var(--wiki-content-text-mix-color-95);" |
<span style="color:var(--wiki-content-background-color)">--wiki-content-background-color</span><br/>
<span style="color:var(--wiki-content-background-color--secondary)">--wiki-content-background-color--secondary</span>
|-
| --wiki-content-dynamic-color
| style="background-color:var(--wiki-content-dynamic-color);" |
| This is expected to contrast sharply with <code>--wiki-content-background-color</code>. Usually this is {{color|#000}} on light themes and {{color|#fff}} on dark themes.
| style="background-color:var(--wiki-content-dynamic-color);" |
<span style="color:var(--wiki-content-background-color)">--wiki-content-background-color</span><br/>
<span style="color:var(--wiki-content-dynamic-color--inverted)">--wiki-content-dynamic-color--inverted</span><br/>
<span style="color:var(--wiki-content-dynamic-color--secondary--inverted)">--wiki-content-dynamic-color--secondary--inverted</span><br/>
|-
| --wiki-content-dynamic-color--inverted
| style="background-color:var(--wiki-content-dynamic-color--inverted);" |
| The inverse of <code>--wiki-content-dynamic-color</code>.
| style="background-color:var(--wiki-content-dynamic-color--inverted);" |
<span style="color:var(--wiki-content-dynamic-color)">--wiki-content-dynamic-color</span><br/>
<span style="color:var(--wiki-content-dynamic-color--secondary)">--wiki-content-dynamic-color--secondary</span><br/>
|-
| --wiki-content-dynamic-color--secondary
| style="background-color:var(--wiki-content-dynamic-color--secondary);" |
| A slightly different version of <code>--wiki-content-dynamic-color</code>. Usually this is {{color|#333}} on light themes and {{color|#ccc}} on dark themes.
| style="background-color:var(--wiki-content-dynamic-color--secondary);" |
<span style="color:var(--wiki-content-background-color)">--wiki-content-background-color</span><br/>
<span style="color:var(--wiki-content-dynamic-color--inverted)">--wiki-content-dynamic-color--inverted</span><br/>
<span style="color:var(--wiki-content-dynamic-color--secondary--inverted)">--wiki-content-dynamic-color--secondary--inverted</span><br/>
|-
| --wiki-content-dynamic-color--secondary--inverted
| style="background-color:var(--wiki-content-dynamic-color--secondary--inverted);" |
| The inverse of <code>--wiki-content-dynamic-color--secondary</code>.
| style="background-color:var(--wiki-content-dynamic-color--secondary--inverted);" |
<span style="color:var(--wiki-content-dynamic-color)">--wiki-content-dynamic-color</span><br/>
<span style="color:var(--wiki-content-dynamic-color--secondary)">--wiki-content-dynamic-color--secondary</span><br/>
|-
| --wiki-content-heading-color
| style="background-color:var(--wiki-content-heading-color);" |
| The color of headings, such as the page title and section headings. Usually this is set to <code>--wiki-content-text-color</code>, but feel free to give it a different color to spice up the theme a little.
| style="background-color:var(--wiki-content-heading-color);" |
<span style="color:var(--wiki-content-background-color)">--wiki-content-background-color</span>
|-
| --wiki-accent-color
| style="background-color:var(--wiki-accent-color);" |
| Used to style infoboxes, navboxes, focused element outlines, and some buttons, such as the save button when editing.
| style="background-color:var(--wiki-accent-color);" |
<span style="color:var(--wiki-accent-label-color)">--wiki-accent-label-color</span><br/>
<span style="color:var(--wiki-accent-link-color)">--wiki-accent-link-color</span><br/>
<span style="color:var(--wiki-content-background-color)">--wiki-content-background-color</span><br/>
<span style="color:var(--wiki-content-background-color--secondary)">--wiki-content-background-color--secondary</span><br/>
|-
| --wiki-accent-color--hover
| style="background-color:var(--wiki-accent-color--hover);" |
| The color of accent-color when hovered over, in some cases. Usually this is just accent-color with saturation and/or value reduced or increased by about 10%, but you're free to make it whatever you want provided the contrast checks to the right still pass.
| style="background-color:var(--wiki-accent-color--hover);" |
<span style="color:var(--wiki-accent-label-color)">--wiki-accent-label-color</span>
|-
| --wiki-accent-label-color
| style="background-color:var(--wiki-accent-label-color);" |
| The color of normal text against the accent color.
| style="background-color:var(--wiki-accent-label-color);" |
<span style="color:var(--wiki-accent-color)">--wiki-accent-color</span><br/>
<span style="color:var(--wiki-accent-color--hover)">--wiki-accent-color--hover</span><br/>
|-
| --wiki-accent-link-color
| style="background-color:var(--wiki-accent-link-color);" |
| The color of links against the accent color.
| style="background-color:var(--wiki-accent-link-color);" |
<span style="color:var(--wiki-accent-color)">--wiki-accent-color</span>
|-
| --wiki-sidebar-background-color
| style="background-color:var(--wiki-sidebar-background-color);" |
| The background color of the sidebar to the left of the content area. Usually this inherits <code>--wiki-content-background-color</code>.
| style="background-color:var(--wiki-sidebar-background-color);" |
<span style="color:var(--wiki-sidebar-link-color)">--wiki-sidebar-link-color</span><br/>
<span style="color:var(--wiki-sidebar-heading-color)">--wiki-sidebar-heading-color</span><br/>
|-
| --wiki-sidebar-border-color
| style="background-color:var(--wiki-sidebar-border-color);" |
| The border color of the sidebar. Usually this inherits <code>--wiki-content-border-color</code>.
| N/A
|-
| --wiki-sidebar-link-color
| style="background-color:var(--wiki-sidebar-link-color);" |
| The color of links in the sidebar. Usually this inherits <code>--wiki-content-link-color</code>.
| style="background-color:var(--wiki-sidebar-link-color);" |
<span style="color:var(--wiki-sidebar-background-color)">--wiki-sidebar-background-color</span>
|-
| --wiki-sidebar-link-color--hover
| style="background-color:var(--wiki-sidebar-link-color--hover);" |
| The color links change to when hovered over. This is optional, and usually inherits <code>--wiki-content-link-color--hover</code>.
| style="background-color:var(--wiki-sidebar-link-color--hover);" |
<span style="color:var(--wiki-sidebar-background-color)">--wiki-sidebar-background-color</span>
|-
| --wiki-sidebar-heading-color
| style="background-color:var(--wiki-sidebar-heading-color);" |
| The color of headings in the sidebar. Usually this inherits <code>--wiki-content-heading-color</code>.
| style="background-color:var(--wiki-sidebar-heading-color);" |
<span style="color:var(--wiki-sidebar-background-color)">--wiki-sidebar-background-color</span>
|-
| --wiki-navigation-background-color
| style="background-color:var(--wiki-navigation-background-color);" |
| The primary background color of the navigation tabs above the content area. Usually this inherits <code>--wiki-content-background-color--secondary</code>.
| style="background-color:var(--wiki-navigation-background-color);" |
<span style="color:var(--wiki-navigation-text-color)">--wiki-navigation-text-color</span><br/>
|-
| --wiki-navigation-background-color--secondary
| style="background-color:var(--wiki-navigation-background-color--secondary);" |
| The upper background color of the navigation tabs, as well as the background color of the "More" menu dropdown. Usually this inherits <code>--wiki-content-background-color</code>.
| style="background-color:var(--wiki-navigation-background-color--secondary);" |
<span style="color:var(--wiki-navigation-text-color)">--wiki-navigation-text-color</span><br/>
|-
| --wiki-navigation-border-color
| style="background-color:var(--wiki-navigation-border-color);" |
| Border color of the navigation tabs. Usually this inherits <code>--wiki-content-border-color</code>.
| N/A
|-
| --wiki-navigation-text-color
| style="background-color:var(--wiki-navigation-text-color);" |
| The color of text in the navigation tabs. Usually this inherits <code>--wiki-content-link-color</code>.
| style="background-color:var(--wiki-navigation-text-color);" |
<span style="color:var(--wiki-navigation-background-color)">--wiki-navigation-background-color</span><br/>
<span style="color:var(--wiki-navigation-background-color--secondary)">--wiki-navigation-background-color--secondary</span><br/>
|-
| --wiki-navigation-text-color--hover
| style="background-color:var(--wiki-navigation-text-color--hover);" |
| The color of text in the navigation tabs when hovered. Usually this inherits <code>--wiki-content-link-color--hover</code>.
| style="background-color:var(--wiki-navigation-text-color--hover);" |
<span style="color:var(--wiki-navigation-background-color)">--wiki-navigation-background-color</span><br/>
<span style="color:var(--wiki-navigation-background-color--secondary)">--wiki-navigation-background-color--secondary</span><br/>
|-
| --wiki-navigation-selected-background-color
| style="background-color:var(--wiki-navigation-selected-background-color);" |
| The background color of the currently active navigation tab. Usually this inherits <code>--wiki-content-background-color</code>
| style="background-color:var(--wiki-navigation-selected-background-color);" |
<span style="color:var(--wiki-navigation-selected-text-color)">--wiki-navigation-selected-text-color</span><br/>
|-
| --wiki-navigation-selected-border-color
| style="background-color:var(--wiki-navigation-selected-border-color);" |
| The border color of the currently active navigation tab. Usually this inherits <code>--wiki-navigation-border-color</code>
| N/A
|-
| --wiki-navigation-selected-text-color
| style="background-color:var(--wiki-navigation-selected-text-color);" |
| The text color of the currently active navigation tab. Usually this inherits <code>--wiki-content-text-color</code>
| style="background-color:var(--wiki-navigation-selected-text-color);" |
<span style="color:var(--wiki-navigation-selected-background-color)">--wiki-navigation-selected-background-color</span><br/>
|-
| --wiki-neutral-color
| style="background-color:var(--wiki-neutral-color);" |
| A gray-ish color for displaying neutral text, such as a diff size of 0 in RecentChanges and page history. Usually this inherits <code>--wiki-content-text-mix-color</code>, but can be set explicitly if that color is not gray enough.
| style="background-color:var(--wiki-neutral-color);" |
<span style="color:var(--wiki-content-background-color)">--wiki-content-background-color</span><br/>
<span style="color:var(--wiki-content-background-color--secondary)">--wiki-content-background-color--secondary</span>
|-
| --wiki-alert-color
| style="background-color:var(--wiki-alert-color);" |
| A general, usually red-ish color used for negative notices, most notably negative diffs in RecentChanges and page history, and the "cancel" button when editing.
| style="background-color:var(--wiki-alert-color);" |
<span style="color:var(--wiki-alert-label-color)">--wiki-alert-label-color</span><br/>
<span style="color:var(--wiki-content-background-color)">--wiki-content-background-color</span><br/>
<span style="color:var(--wiki-content-background-color--secondary)">--wiki-content-background-color--secondary</span><br/>
|-
| --wiki-alert-label-color
| style="background-color:var(--wiki-alert-label-color);" |
| The color of text against <code>--wiki-alert-color</code> as a background.
| style="background-color:var(--wiki-alert-label-color);" |
<span style="color:var(--wiki-alert-color)">--wiki-alert-color</span><br/>
|-
| --wiki-warning-color
| style="background-color:var(--wiki-warning-color);" |
| A general, usually orange-ish color used for warning notices.
| style="background-color:var(--wiki-warning-color);" |
<span style="color:var(--wiki-warning-label-color)">--wiki-warning-label-color</span><br/>
<span style="color:var(--wiki-content-background-color)">--wiki-content-background-color</span><br/>
|-
| --wiki-warning-label-color
| style="background-color:var(--wiki-warning-label-color);" |
| The color of text against <code>--wiki-warning-color</code> as a background.
| style="background-color:var(--wiki-warning-label-color);" |
<span style="color:var(--wiki-warning-color)">--wiki-warning-color</span><br/>
|-
| --wiki-success-color
| style="background-color:var(--wiki-success-color);" |
| A general, usually green-ish color used for success notices, most noticeably positive diffs in RecentChanges and page history.
| style="background-color:var(--wiki-success-color);" |
<span style="color:var(--wiki-success-label-color)">--wiki-success-label-color</span><br/>
<span style="color:var(--wiki-content-background-color)">--wiki-content-background-color</span><br/>
<span style="color:var(--wiki-content-background-color--secondary)">--wiki-content-background-color--secondary</span><br/>
|-
| --wiki-success-label-color
| style="background-color:var(--wiki-success-label-color);" |
| The color of text against <code>--wiki-success-color</code> as a background.
| style="background-color:var(--wiki-success-label-color);" |
<span style="color:var(--wiki-success-color)">--wiki-success-color</span><br/>
|}
<h2>Stylesheet</h2>
<!-- When rendered on common.css, the actual stylesheet will be right here -->
</div>
034ef1fb6eaaf693a45f7ab4ea455a1e485bb147
MediaWiki:DataMaps.css
8
251
275
2025-11-02T00:45:02Z
ARTIFICER
564804
Importing default loadout
css
text/css
/** Container */
.ext-datamaps-container-content .ext-datamaps-container-leaflet {
background: var(--wiki-content-background-color--secondary);
}
/** Legend */
.ext-datamaps-container .ext-datamaps-control-expandable[aria-expanded="true"] {
background: color-mix(in srgb, var(--wiki-content-background-color--secondary) 95%, transparent);
}
.ext-datamaps-container .oo-ui-tabOptionWidget {
color: var(--wiki-content-link-color);
}
.ext-datamaps-container .oo-ui-tabSelectWidget-frameless .oo-ui-tabOptionWidget.oo-ui-optionWidget-selected {
background: var(--wiki-content-link-color);
box-shadow: none;
color: var(--wiki-content-link-label-color);
}
/** Popups */
.ext-datamaps-container .leaflet-popup-content-wrapper,
.ext-datamaps-container .leaflet-popup-tip {
background: var(--wiki-content-background-color--secondary);
color: var(--wiki-content-text-color);
}
.ext-datamaps-container .ext-datamaps-popup-buttons a,
.ext-datamaps-container .leaflet-popup-close-button {
filter: var(--wiki-icon-general-filter);
cursor: pointer;
}
.ext-datamaps-popup-header .ext-datamaps-popup-subtitle, .ext-datamaps-popup-header .ext-datamaps-popup-location {
color: var(--wiki-content-text-mix-color);
}
.ext-datamaps-popup .ext-datamaps-popup-tools li a {
border: 1px solid var(--wiki-content-link-color);
transition: background 100ms, color 100ms;
}
.ext-datamaps-popup .ext-datamaps-popup-tools li a:hover {
background: var(--wiki-content-link-color);
color: var(--wiki-content-link-label-color);
}
/** Controls */
.ext-datamaps-container .leaflet-bar {
background-color: var(--wiki-content-background-color--secondary);
border-color: color-mix(in srgb, var(--wiki-content-link-color) 50%, transparent);
}
.ext-datamaps-container .leaflet-bar button:hover {
background-color: color-mix(in srgb, var(--wiki-content-dynamic-color) 25%, transparent);
}
.ext-datamaps-container .leaflet-control {
color: var(--wiki-content-text-color);
}
.leaflet-control-container .oo-ui-buttonElement > .oo-ui-buttonElement-button {
min-height: unset;
}
.ext-datamaps-container .leaflet-control button {
border-bottom-color: color-mix(in srgb, var(--wiki-content-link-color) 50%, transparent);
color: var(--wiki-content-text-color);
}
/* HACK: awful selector, v1.0 will prolly use a standard class on these */
.ext-datamaps-container .ext-datamaps-control span[class^="oo-ui-icon"] {
filter: var(--wiki-icon-general-filter);
}
/** Search */
.ext-datamaps-container .ext-datamaps-control-search ul.ext-datamaps-control-search-results {
background: var(--wiki-content-background-color--secondary);
}
.ext-datamaps-container .ext-datamaps-control-search ul.ext-datamaps-control-search-results li:focus,
.ext-datamaps-container .ext-datamaps-control-search ul.ext-datamaps-control-search-results li[data-highlighted="true"] {
background: color-mix(in srgb, var(--wiki-content-link-color) 15%, transparent);
color: var(--wiki-content-link-color);
}
.ext-datamaps-container .ext-datamaps-container-status > :not(.oo-ui-widget) {
background:var(--wiki-content-background-color--secondary);
color:var(--wiki-content-text-mix-color);
}
.ext-datamaps-container .leaflet-control-container .ext-datamaps-control-coords {
background: var(--background-color-neutral-subtle);
color: var(--color-base--subtle);
}
f3ef9024b4b537b9fa9bceff82bbbeaf0feb7f7a
MediaWiki:Gadgets/mpEditLinks/main.js
8
252
276
2025-11-02T00:45:02Z
ARTIFICER
564804
Importing default loadout
javascript
text/javascript
$.when( $.ready )
.then(function(){
if(!document.getElementById('mp-container')) return; /* page is not using IMP */
if(!mw.config.get('wgIsProbablyEditable')) return; /* user does not have permission to edit the page */
var rootpage = document.getElementById('mp-container').dataset['rootpage']; // Get the rootpage passed from the main page module, so we don't need to make an API call
/* generate the links here instead of in the wikitext, so that users who can't see them don't have them
* in the DOM at all, and screenreaders and search engines don't get confused */
function createLinks(){
$('.mp-box').each(function(_, el){
var params = '?action=edit';
// only add the long preload stuff if the box doesn't exist, for prettier urls
if ( $(el).hasClass('missing') ){
params += '&preload=Template:Main page box/preload&preloadparams[0]=' + el.dataset['boxId'].charAt(0).toUpperCase() + el.dataset['boxId'].slice(1); /* preloadparam is box id with first letter capitalized */
}
$('<a></a>', {href: mw.util.getUrl(rootpage + '/' + el.dataset['boxId']) + params})
.msg('gadget-mpEditLinks-edit-link-text', rootpage + '/' + el.dataset['boxId'])
.appendTo(
$('<div></div>', {
class: 'mp-edit-link'
}).prependTo(el)
);
});
}
function toggleLinks(){
$('.mp-edit-link').each(function(_, el){
$(el).toggle().css('display none;');
});
}
$('<span></span>', {
text: mw.msg('gadget-mpEditLinks-toggle-link-text'),
class: 'mp-edit-toggle',
on: {click: toggleLinks},
}).appendTo($('#top'));
createLinks();
});
1d90ab83a0b7ca91992c8b4a197018d68b8e5959
MediaWiki:Gadgets/mpEditLinks/main.css
8
253
277
2025-11-02T00:45:03Z
ARTIFICER
564804
Importing default loadout
css
text/css
.mp-edit-link {
display:block;
position:absolute;
z-index:99;
right:0.5em;
top:0.5em;
background:var(--wiki-content-background-color);
}
.mp-edit-link a {
display:block;
padding:0.1em;
border:1px solid var(--wiki-content-link-color);
}
.mp-edit-link a::before {
display:inline-block;
content:'';
background-image:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2220%22 height=%2220%22 viewBox=%220 0 20 20%22%3E%3Ctitle%3E edit %3C/title%3E%3Cpath d=%22m16.77 8 1.94-2a1 1 0 0 0 0-1.41l-3.34-3.3a1 1 0 0 0-1.41 0L12 3.23zM1 14.25V19h4.75l9.96-9.96-4.75-4.75z%22/%3E%3C/svg%3E");
background-size:contain;
width:1em;
height:1em;
filter:var(--wiki-icon-to-link-filter);
vertical-align:text-top;
margin-right:0.2em;
}
c5fd62c547dd14df99d3f223cdca962743d492d1
MediaWiki:Gadgets/ranger/main.css
8
254
278
2025-11-02T00:45:03Z
ARTIFICER
564804
Importing default loadout
css
text/css
/** as of Module:navbox version 1.2.5 **/
.ranger-navbox{
border-color: var(--navbox-outer-border-color);
border-style: var(--navbox-outer-border-style);
border-width: var(--navbox-outer-border-width);
border-radius: var(--navbox-outer-border-radius);
padding: var(--navbox-padding);
font-size: var(--navbox-font-size);
margin: var(--navbox-margin);
background: var(--navbox-background);
line-height: 1.5;
clear:both;
}
.ranger-navbox * {
border: 0;
}
.ranger-navbox .center *{
margin-left: unset;
margin-right: unset;
}
.ranger-navbox,
.ranger-navbox .ranger-section,
.ranger-navbox .ranger-listbox{
display: flex;
flex-direction: column;
gap: var(--navbox-gap);
}
.ranger-navbox .ranger-title,
.ranger-navbox .ranger-header{
text-align: center;
min-height: 1.5em;
position: relative;
z-index: 0;
font-weight: bold;
}
.ranger-navbox .ranger-title{
color: var(--navbox-title-color);
background: var(--navbox-title-background);
font-size: var(--navbox-title-font-size);
padding: var(--navbox-title-padding--y) calc(1.5em + var(--navbox-icon-offset--x)); /* left and right padding equal to the size and position of the edit/collapse buttons */
}
.ranger-navbox .ranger-title a,
.ranger-navbox .ranger-title a:visited,
.ranger-navbox .ranger-title a:hover,
.ranger-navbox .ranger-title a.external,
.ranger-navbox .ranger-title a.external:visited,
.ranger-navbox .ranger-title a.external:hover {
text-decoration: var(--navbox-title-link-decoration);
}
.ranger-navbox .ranger-title a.new,
.ranger-navbox .ranger-title a.new:visited {
text-decoration: var(--navbox-title-redlink-decoration);
}
.ranger-navbox .ranger-title a,
.ranger-navbox .ranger-title a.external,
.ranger-navbox .ranger-title a.external:visited {
color: var(--navbox-title-link-color);
}
.ranger-navbox .ranger-title a:visited{
color: var(--navbox-title-link-color--visited);
}
.ranger-navbox .ranger-title a.new,
.ranger-navbox .ranger-title a.new:visited{
color:var(--navbox-title-redlink-color);
}
.ranger-navbox .ranger-title a:hover,
.ranger-navbox .ranger-title a:visited:hover,
.ranger-navbox .ranger-title a.external:hover,
.ranger-navbox .ranger-title a.external:visited:hover {
color:var(--navbox-title-link-color--hover);
}
.ranger-navbox .ranger-header{
color: var(--navbox-header-color);
background: var(--navbox-header-background);
font-size: var(--navbox-header-font-size);
padding: var(--navbox-header-padding--y) calc(1.5em + var(--navbox-icon-offset--x)); /* left and right padding equal to the size and position of the edit/collapse buttons */
}
.ranger-navbox .ranger-sublist .ranger-header{
font-size: var(--navbox-subheader-font-size);
padding: var(--navbox-subheader-padding--y) calc(1.5em + var(--navbox-icon-offset--x)); /* left and right padding equal to the size and position of the edit/collapse buttons */
}
.ranger-navbox .ranger-header a,
.ranger-navbox .ranger-header a:visited,
.ranger-navbox .ranger-header a:hover,
.ranger-navbox .ranger-header a.external,
.ranger-navbox .ranger-header a.external:visited,
.ranger-navbox .ranger-header a.external:hover {
text-decoration: var(--navbox-header-link-decoration);
}
.ranger-navbox .ranger-header a.new,
.ranger-navbox .ranger-header a.new:visited {
text-decoration: var(--navbox-header-redlink-decoration);
}
.ranger-navbox .ranger-header a,
.ranger-navbox .ranger-header a.external,
.ranger-navbox .ranger-header a.external:visited {
color: var(--navbox-header-link-color);
}
.ranger-navbox .ranger-header a:visited{
color: var(--navbox-header-link-color--visited);
}
.ranger-navbox .ranger-header a.new,
.ranger-navbox .ranger-header a.new:visited{
color:var(--navbox-header-redlink-color);
}
.ranger-navbox .ranger-header a:hover,
.ranger-navbox .ranger-header a:visited:hover,
.ranger-navbox .ranger-header a.external:hover,
.ranger-navbox .ranger-header a.external:visited:hover {
color:var(--navbox-header-link-color--hover);
}
.ranger-navbox .ranger-meta{
font-size: var(--navbox-title-font-size);
position: absolute;
left: var(--navbox-icon-offset--x);
top: calc(var(--navbox-title-padding--y) + 0.08em); /* 0.08em: vertial offset tweak based on the icon graph */
display: block;
}
.ranger-navbox .ranger-meta .nv{
--mask: var(--icon-metalinks);
display: block;
width: 0.84em; /* based on the icon graph */
height: 0.84em;
-webkit-mask: var(--mask);
mask: var(--mask);
-webkit-mask-size: 100% 100%;
mask-size: 100% 100%;
-webkit-mask-position: center center;
mask-position: center center;
background-color: var(--navbox-title-icon-color);
}
.ranger-navbox .ranger-meta .nv > a{
display: block;
width: 100%;
height: 100%;
opacity: 0;
}
.ranger-navbox .ranger-meta .nv > a > span{
display: block;
width: 100%;
height: 100%;
overflow: hidden;
}
.ranger-navbox .ranger-meta:has(.mw-selflink){
display: none;
}
.ranger-navbox,
.ranger-navbox .ranger-section{
position: relative;
}
.ranger .mw-collapsible-toggle-placeholder{
display: none;
}
.ranger-navbox .ranger-title > .ranger-title-text,
.ranger-navbox .ranger-header > .ranger-header-text{
pointer-events: none;
}
.ranger-navbox .ranger-title > .ranger-title-text a,
.ranger-navbox .ranger-header > .ranger-header-text a{
pointer-events: auto;
}
.ranger-navbox .ranger-title > .mw-collapsible-toggle,
.ranger-navbox .ranger-header > .mw-collapsible-toggle{
--mask: var(--icon-chevron-down);
position: absolute;
right: 0;
top: 0;
z-index: -1;
display: block;
width: 100%;
height: 100%;
overflow:hidden;
}
.ranger-navbox.small-collapsible-toggle-click-area .ranger-title > .mw-collapsible-toggle,
.ranger-navbox.small-collapsible-toggle-click-area .ranger-header > .mw-collapsible-toggle{
width: 1.5em;
height: 1.5em;
right: var(--navbox-icon-offset--x);
}
.ranger-navbox.small-collapsible-toggle-click-area .ranger-title > .mw-collapsible-toggle{
top: var(--navbox-title-padding--y);
}
.ranger-navbox.small-collapsible-toggle-click-area .ranger-header > .mw-collapsible-toggle{
top: var(--navbox-header-padding--y);
}
.ranger-navbox.small-collapsible-toggle-click-area .ranger-sublist .ranger-header > .mw-collapsible-toggle{
top: var(--navbox-subheader-padding--y);
}
.ranger-navbox .ranger-title > .mw-collapsible-toggle::before,
.ranger-navbox .ranger-header > .mw-collapsible-toggle::before{
content: "";
display: block;
width: 1.5em;
height: 1.5em;
position: absolute;
right: var(--navbox-icon-offset--x);
-webkit-mask: var(--mask);
mask: var(--mask);
-webkit-mask-size: 100% 100%;
mask-size: 100% 100%;
-webkit-mask-position: center center;
mask-position: center center;
background-color: var(--navbox-title-icon-color);
transform: scaleY(-1);
}
.ranger-navbox .ranger-title > .mw-collapsible-toggle::before{
top: var(--navbox-title-padding--y);
}
.ranger-navbox .ranger-header > .mw-collapsible-toggle::before{
top: var(--navbox-header-padding--y);
}
.ranger-navbox .ranger-sublist .ranger-header > .mw-collapsible-toggle::before{
top: var(--navbox-subheader-padding--y);
}
.ranger-navbox.small-collapsible-toggle-click-area .ranger-title > .mw-collapsible-toggle::before,
.ranger-navbox.small-collapsible-toggle-click-area .ranger-header > .mw-collapsible-toggle::before{
top: 0;
right: 0;
}
.ranger-navbox .ranger-header > .mw-collapsible-toggle::before{
background-color: var(--navbox-header-icon-color);
}
.ranger-navbox .ranger-title > .mw-collapsible-toggle.mw-collapsible-toggle-collapsed::before,
.ranger-navbox .ranger-header > .mw-collapsible-toggle.mw-collapsible-toggle-collapsed::before{
transform: none;
}
.ranger-navbox .ranger-title > .mw-collapsible-toggle *,
.ranger-navbox .ranger-title > .mw-collapsible-toggle::after,
.ranger-navbox .ranger-header > .mw-collapsible-toggle *,
.ranger-navbox .ranger-header > .mw-collapsible-toggle::after{
display: none;
}
.ranger-navbox .ranger-list{
width: unset;
padding: var(--navbox-list-padding);
}
.ranger-navbox .ranger-above{
background: var(--navbox-above-background);
color: var(--navbox-above-color);
padding: var(--navbox-above-padding);
width: unset;
}
.ranger-navbox .ranger-below{
background: var(--navbox-below-background);
color: var(--navbox-below-color);
padding: var(--navbox-below-padding);
width: unset;
}
.ranger-navbox .ranger-sublist{
display: flex;
flex-direction: column;
gap: var(--navbox-gap);
}
.ranger-navbox .ranger-section-body{
display: grid;
gap: var(--navbox-gap);
grid-template-columns: auto minmax(0,1fr);
}
/* gap fix for collapsed content */
.ranger-navbox [class^="ranger-"][hidden="until-found"]{
margin-top: calc(0px - var(--navbox-gap)) !important;
}
.ranger-navbox .ranger-row{
display: contents;
}
.ranger-navbox .ranger-group,
.ranger-navbox .ranger-subgroup{
text-align: var(--navbox-group-text-align);
font-weight: bold;
background: var(--navbox-group-background);
color: var(--navbox-group-color);
padding: var(--navbox-group-padding);
width: unset;
}
/* for desktop view */
.ranger-navbox.group-align-left .ranger-group,
.ranger-navbox.group-align-left .ranger-subgroup{
--navbox-group-text-align: left;
}
.ranger-navbox.group-align-center .ranger-group,
.ranger-navbox.group-align-center .ranger-subgroup{
--navbox-group-text-align: center;
}
.ranger-navbox.group-align-right .ranger-group,
.ranger-navbox.group-align-right .ranger-subgroup{
--navbox-group-text-align: right;
}
/* for mobile view */
.ranger-navbox.mobile-group-align-left .ranger-group,
.ranger-navbox.mobile-group-align-left .ranger-subgroup{
--navbox-group-text-align--mobile: left;
}
.ranger-navbox.mobile-group-align-center .ranger-group,
.ranger-navbox.mobile-group-align-center .ranger-subgroup{
--navbox-group-text-align--mobile: center;
}
.ranger-navbox.mobile-group-align-right .ranger-group,
.ranger-navbox.mobile-group-align-right .ranger-subgroup{
--navbox-group-text-align--mobile: right;
}
/* for desktop view */
.ranger-navbox.list-align-left .ranger-listbox{
--navbox-list-text-align: left;
}
.ranger-navbox.list-align-center .ranger-listbox{
--navbox-list-text-align: center;
}
.ranger-navbox.list-align-right .ranger-listbox{
--navbox-list-text-align: right;
}
/* for mobile view */
.ranger-navbox.mobile-list-align-left .ranger-listbox{
--navbox-list-text-align--mobile: left;
}
.ranger-navbox.mobile-list-align-center .ranger-listbox{
--navbox-list-text-align--mobile: center;
}
.ranger-navbox.mobile-list-align-right .ranger-listbox{
--navbox-list-text-align--mobile: right;
}
.ranger-navbox .ranger-listbox > .ranger-wrap{
text-align: var(--navbox-list-text-align);
background: var(--navbox-list-background);
color: var(--navbox-list-color);
flex-grow: 1;
}
.ranger-navbox .ranger-sublist{
flex-grow: var(--count);
}
.ranger-navbox .ranger-listbox:first-child{ /* A list-n without group-n */
grid-column-end: span 2;
}
.ranger-navbox .ranger-group,
.ranger-navbox .ranger-subgroup,
.ranger-navbox .ranger-listbox > .ranger-wrap{
display: grid;
justify-items: stretch;
align-items: center;
}
.ranger-navbox.striped-even .ranger-even,
.ranger-navbox.striped-odd .ranger-odd{
background: var(--navbox-list-background--striped);
}
/* make links use full line height (larger click box)*/
.ranger-navbox .hlist a{
display: inline-block;
}
.ranger-navbox .align-left,
.ranger-navbox .alignleft{
text-align: left;
}
.ranger-navbox .align-center,
.ranger-navbox .aligncenter{
text-align: center;
}
.ranger-navbox .align-right,
.ranger-navbox .alignright{
text-align: right;
}
/* responsive */
@media screen and (max-width: 720px) {
.ranger-navbox .ranger-section-body,
.ranger-navbox .ranger-sublist {
display: flex;
flex-flow: column;
}
.ranger-navbox .ranger-row{
display: block;
}
.ranger-navbox .ranger-group + .ranger-listbox > .ranger-sublist:first-child,
.ranger-navbox .ranger-subgroup + .ranger-listbox > .ranger-sublist:first-child{
margin-top: var(--navbox-gap);
}
.ranger-navbox .ranger-listbox.empty{
display: none;
}
.ranger-navbox .ranger-group,
.ranger-navbox .ranger-subgroup{
text-align: var(--navbox-group-text-align--mobile, left);
max-width: unset !important;
}
.ranger-navbox .ranger-group > *,
.ranger-navbox .ranger-subgroup > *{
max-width: unset !important;
}
.ranger-navbox .ranger-sublist {
padding-left: var(--navbox-tree-indent);
margin-left: var(--navbox-tree-line-indent);
}
.ranger-navbox .ranger-subgroup,
.ranger-navbox .ranger-listbox {
position:relative;
}
.ranger-navbox .ranger-group br,
.ranger-navbox .ranger-subgroup br{
display: none;
}
.ranger-navbox .ranger-listbox > .ranger-wrap{
text-align: var(--navbox-list-text-align--mobile, left);
}
.ranger-navbox .ranger-sublist > .ranger-section > .ranger-header{
margin-left: calc( 0px - var(--navbox-tree-indent) - var(--navbox-tree-line-indent));
}
.ranger-navbox .ranger-sublist .ranger-row > ::before{
position: absolute;
left: calc(0px - var(--navbox-tree-indent));
top: 0;
width: var(--navbox-tree-line-width);
height: 100%;
content: '';
display: block;
background-color: var(--navbox-tree-line-color);
}
.ranger-navbox .ranger-sublist .ranger-row > .ranger-listbox::before,
.ranger-navbox .ranger-row.empty-list > .ranger-subgroup::before{
height: calc(100% + var(--navbox-gap));
}
.ranger-navbox .ranger-sublist .ranger-row:last-child > ::before {
display: none;
}
.ranger-navbox .ranger-sublist .ranger-row:last-child > :first-child::before {
display: block;
height: calc(50% + var(--navbox-tree-line-width)/2);
}
.ranger-navbox .ranger-subgroup::after,
.ranger-navbox .ranger-row .ranger-row.empty-group > .ranger-listbox > .ranger-wrap::after{
position: absolute;
left: calc(0px - var(--navbox-tree-indent) + var(--navbox-tree-line-width));
width: calc(var(--navbox-tree-indent) - var(--navbox-tree-line-spacing) - var(--navbox-tree-line-width));
height: var(--navbox-tree-line-width);
content: '';
background-color: var(--navbox-tree-line-color);
}
/* increase height for links */
.ranger-navbox .hlist{
line-height: 2;
}
}
/**** `.pill` class: the "pill" style ****/
/* remove middle dots betweem items */
.ranger-navbox.pill .hlist dd:not(:last-child)::after,
.ranger-navbox.pill .hlist li:not(:last-child)::after{
display: none;
}
/* remove parentheses around nested lists*/
.ranger-navbox.pill .hlist dd ol::before,
.ranger-navbox.pill .hlist dd ul::before,
.ranger-navbox.pill .hlist dd dl::before,
.ranger-navbox.pill .hlist dt ol::before,
.ranger-navbox.pill .hlist dt ul::before,
.ranger-navbox.pill .hlist dt dl::before,
.ranger-navbox.pill .hlist li ol::before,
.ranger-navbox.pill .hlist li ul::before,
.ranger-navbox.pill .hlist li dl::before,
.ranger-navbox.pill .hlist dd ol::after,
.ranger-navbox.pill .hlist dd ul::after,
.ranger-navbox.pill .hlist dd dl::after,
.ranger-navbox.pill .hlist dt ol::after,
.ranger-navbox.pill .hlist dt ul::after,
.ranger-navbox.pill .hlist dt dl::after,
.ranger-navbox.pill .hlist li ol::after,
.ranger-navbox.pill .hlist li ul::after,
.ranger-navbox.pill .hlist li dl::after {
display: none;
}
/* make lists inline-flex */
.ranger-navbox.pill .hlist ul,
.ranger-navbox.pill .hlist ol,
.ranger-navbox.pill .hlist dl{
display: inline-flex;
gap: var(--navbox-pill-gap);
flex-wrap: wrap;
}
/* "pill" style for items */
.ranger-navbox.pill .hlist li,
.ranger-navbox.pill .hlist dt,
.ranger-navbox.pill .hlist dd{
padding: var(--navbox-pill-padding);
border-radius: var(--navbox-pill-border-radius);
box-shadow: var(--navbox-pill-box-shadow);
background: var(--navbox-pill-background);
/* 100% height */
display: flex;
align-items: center;
/* for nested lists */
gap: var(--navbox-pill-gap);
flex-wrap: wrap;
}
/* Add a hover / focus feedback style */
.ranger-navbox.pill .hlist dd:hover,
.ranger-navbox.pill .hlist dd:focus,
.ranger-navbox.pill .hlist dt:hover,
.ranger-navbox.pill .hlist dt:focus,
.ranger-navbox.pill .hlist li:hover,
.ranger-navbox.pill .hlist li:focus {
box-shadow: var(--navbox-pill-box-shadow--hover);
background: var(--navbox-pill-background--hover);
}
/* pill with selflink
*
* Only select the deepest level for nested lists.
* We have to use :has() to pick pills with selflink and
* all browsers which support :has() should also support :is() and :not(),
* therefore we can use :is() and :not() here safely.
*/
.ranger-navbox.pill .hlist .ranger-list :is(li,dt,dd):has(.mw-selflink):not(:has(li, dt, dd)){
background: var(--navbox-pill-selflink-background);
}
/**** `.pill-mobile` class: only apply the "pill" style on mobile ****/
@media screen and (max-width: 720px) {
/* remove middle dots betweem items */
.ranger-navbox.pill-mobile .hlist dd:not(:last-child)::after,
.ranger-navbox.pill-mobile .hlist li:not(:last-child)::after{
display: none;
}
/* remove parentheses around nested lists*/
.ranger-navbox.pill-mobile .hlist dd ol::before,
.ranger-navbox.pill-mobile .hlist dd ul::before,
.ranger-navbox.pill-mobile .hlist dd dl::before,
.ranger-navbox.pill-mobile .hlist dt ol::before,
.ranger-navbox.pill-mobile .hlist dt ul::before,
.ranger-navbox.pill-mobile .hlist dt dl::before,
.ranger-navbox.pill-mobile .hlist li ol::before,
.ranger-navbox.pill-mobile .hlist li ul::before,
.ranger-navbox.pill-mobile .hlist li dl::before,
.ranger-navbox.pill-mobile .hlist dd ol::after,
.ranger-navbox.pill-mobile .hlist dd ul::after,
.ranger-navbox.pill-mobile .hlist dd dl::after,
.ranger-navbox.pill-mobile .hlist dt ol::after,
.ranger-navbox.pill-mobile .hlist dt ul::after,
.ranger-navbox.pill-mobile .hlist dt dl::after,
.ranger-navbox.pill-mobile .hlist li ol::after,
.ranger-navbox.pill-mobile .hlist li ul::after,
.ranger-navbox.pill-mobile .hlist li dl::after {
display: none;
}
/* make lists inline-flex */
.ranger-navbox.pill-mobile .hlist ul,
.ranger-navbox.pill-mobile .hlist ol,
.ranger-navbox.pill-mobile .hlist dl{
display: inline-flex;
gap: var(--navbox-pill-gap);
flex-wrap: wrap;
}
/* "pill" style for items */
.ranger-navbox.pill-mobile .hlist li,
.ranger-navbox.pill-mobile .hlist dt,
.ranger-navbox.pill-mobile .hlist dd{
/* 100% height */
display: flex;
align-items: center;
/* for nested lists */
gap: var(--navbox-pill-gap);
flex-wrap: wrap;
}
/* "pill" style for items */
.ranger-navbox.pill-mobile .hlist li,
.ranger-navbox.pill-mobile .hlist dt,
.ranger-navbox.pill-mobile .hlist dd{
padding: var(--navbox-pill-padding);
border-radius: var(--navbox-pill-border-radius);
box-shadow: var(--navbox-pill-box-shadow);
background: var(--navbox-pill-background);
/* 100% height */
display: flex;
align-items: center;
/* for nested lists */
gap: var(--navbox-pill-gap);
flex-wrap: wrap;
}
/* Add a hover / focus feedback style */
.ranger-navbox.pill-mobile .hlist dd:hover,
.ranger-navbox.pill-mobile .hlist dd:focus,
.ranger-navbox.pill-mobile .hlist dt:hover,
.ranger-navbox.pill-mobile .hlist dt:focus,
.ranger-navbox.pill-mobile .hlist li:hover,
.ranger-navbox.pill-mobile .hlist li:focus {
box-shadow: var(--navbox-pill-box-shadow--hover);
background: var(--navbox-pill-background--hover);
}
/* pill with selflink
*
* Only select the deepest level for nested lists.
* We have to use :has() to pick pills with selflink and
* all browsers which support :has() should also support :is() and :not(),
* therefore we can use :is() and :not() here safely.
*/
.ranger-navbox.pill-mobile .hlist .ranger-list :is(li,dt,dd):has(.mw-selflink):not(:has(li, dt, dd)){
background: var(--navbox-pill-selflink-background);
}
}
/*********************
* End Template:Navbox*
**********************/
ae47934e9fa84b08bcf3da9408cfb9a9d7b105c1
MediaWiki:Gadgets/ranger
8
255
279
2025-11-02T00:45:03Z
ARTIFICER
564804
Importing default loadout
GadgetDefinition
application/json
{
"settings": {
"section": "",
"package": false,
"default": true,
"hidden": true,
"supportsUrlLoad": false
},
"loadConditions": {
"actions": [],
"categories": [
"Pages with navboxes"
],
"namespaces": [],
"contentModels": [],
"rights": []
},
"module": {
"pages": [
"variables.css",
"main.css",
"custom.css"
],
"dependencies": [],
"type": "styles"
}
}
0e59fa9520b52214b9fedaecae9f41d86afd197f
MediaWiki:Gadgets/druid
8
256
280
2025-11-02T00:45:04Z
ARTIFICER
564804
Importing default loadout
GadgetDefinition
application/json
{
"settings": {
"package": false,
"section": "",
"default": true,
"hidden": true,
"supportsUrlLoad": false
},
"loadConditions": {
"actions": [],
"categories": [
"Pages with DRUID infoboxes"
],
"namespaces": [],
"contentModels": [],
"rights": []
},
"module": {
"pages": [
"variablesEditMe.css",
"mainReadonly.css",
"customEditMe.css"
],
"dependencies": [],
"type": "styles"
}
}
5c21b27bf41aba17b090e0d888010c308bd5d0bb
MediaWiki:Gadgets/druid/mainReadonly.css
8
257
281
2025-11-02T00:45:04Z
ARTIFICER
564804
Importing default loadout
css
text/css
/* --------------------------------------------- */
/* Do not edit this file please */
/* You can edit variablesEditMe and customEditMe */
/* --------------------------------------------- */
.druid-container {
border: 4px solid var(--druid-border-color);
border-radius: 3px;
background: var(--druid-background-color);
float: right;
clear: right;
margin: 0 0 1em 1em;
width:100%;
max-width:22em;
box-sizing: border-box;
border-collapse: collapse;
}
@media screen and (max-width: 720px) {
.druid-container {
float: none;
margin: 0.5rem auto;
}
}
.druid-main-images-file,
.druid-main-image {
text-align:center;
}
.druid-infobox .druid-title,
.druid-infobox .druid-section {
background:var(--druid-secondary-background-color); /* fallback */
background:color-mix(in srgb, var(--druid-secondary-background-color) 75%, transparent);
color:var(--druid-secondary-background-label-color);
text-align:center;
font-size:1.5em;
padding:1px;
}
.druid-infobox .druid-section {
font-size: 1.25em;
font-weight: 500;
}
.druid-infobox .druid-collapsible .druid-section {
flex-grow: 1;
}
.druid-label {
font-weight:bold;
text-align: right;
box-sizing: border-box;
}
.druid-row > .druid-label {
width: 48%;
flex-shrink: 0;
}
.druid-row > .druid-label,
.druid-row > .druid-data {
padding-inline: 0.3em;
}
.druid-main-image,
.druid-main-images {
padding:5px;
}
.druid-main-image img,
.druid-main-images img {
max-width:100%;
height:auto;
}
.druid-main-images-labels {
display:flex;
flex-direction:row;
flex-wrap:wrap;
justify-content: space-evenly;
margin:0.25em;
gap:0.25em;
}
.druid-main-images-label {
cursor:pointer;
flex:1 1 auto;
text-align:center;
transition:.1s ease-in;
outline:1px solid var(--druid-link-color);
}
.druid-main-images-label.focused {
background:var(--druid-link-color);
color:var(--druid-link-label-color);
}
.druid-main-images-label:not(.focused):hover {
background:var(--druid-link-color); /* fallback */
background:color-mix(in srgb, var(--druid-link-color) 25%, transparent);
}
.druid-toggleable-data:not(.focused),
.druid-main-images-file:not(.focused),
.druid-toggleable-heading:not(.focused),
.druid-row:not(:has(.druid-grid)):has(.druid-toggleable-data-empty.focused),
.druid-grid-item:has(.druid-toggleable-data-empty.focused),
.druid-section:has(.druid-toggleable-heading-empty.focused),
.druid-section-container:has(.druid-toggleable-data-empty.focused):not(:has(.druid-toggleable-data-nonempty.focused)):not(:has(.druid-data-nonempty)) {
display:none;
}
.druid-grid {
display:grid;
gap: 0.3em;
padding: 0.35em;
}
.druid-grid-item {
background:var(--druid-tertiary-background-color);
padding:0.25em;
border:1px solid var(--druid-border-color); /* fallback */
border:1px solid color-mix(in srgb, var(--druid-border-color) 50%, transparent);
border-radius: 2px;
}
.druid-grid-item .druid-label,
.druid-grid-item .druid-data {
text-align: center;
}
.druid-data-wide {
width:100%;
}
.druid-section-container > .druid-collapsible {
display: flex;
justify-content: space-between;
align-items: center;
}
.druid-collapsed {
display:none !important;
}
.druid-collapsible {
cursor:pointer;
position:relative;
}
.druid-collapsible::after {
content: "";
display: block;
position: absolute;
right: 10px;
width: 20px;
height: 20px;
--mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ctitle%3E collapse %3C/title%3E%3Cpath d='M1 13.75l1.5 1.5 7.5-7.5 7.5 7.5 1.5-1.5-9-9-9 9z'/%3E%3C/svg%3E") no-repeat;
-webkit-mask: var(--mask);
mask: var(--mask);
-webkit-mask-size: 100% 100%;
mask-size: 100% 100%;
-webkit-mask-position: center center;
mask-position: center center;
background-color: var(--druid-secondary-background-label-color);
}
.druid-collapsible-collapsed::after {
transform: rotate(180deg);
}
/*****************************************
Div support
*****************************************/
div.druid-row {
display:flex;
margin-block: 1px;
}
div.druid-row + div.druid-row {
margin-top: 0;
}
div.druid-row > .druid-label {
background: var(--druid-tertiary-background-color);
}
.druid-infobox .druid-title {
font-weight: 700;
}
.druid-infobox #toc {
display:none;
}
/********
Custom display classes
*********/
div.druid-stacked.druid-row,
.druid-stacked div.druid-row {
flex-direction: column;
}
.druid-stacked.druid-row > .druid-label,
.druid-stacked .druid-row > .druid-label {
text-align: left;
width: 100%;
flex-basis:unset;
}
.druid-stacked.druid-row > .druid-data,
.druid-stacked .druid-row > .druid-data {
padding-left: .75em;
}
/* --------------------------------------------- */
/* Do not edit this file please */
/* You can edit variablesEditMe and customEditMe */
/* --------------------------------------------- */
b012f61bd994e50b85508138467794f6a296ed2d
MediaWiki:Gadgets/druid/variablesEditMe.css
8
258
282
2025-11-02T00:45:05Z
ARTIFICER
564804
Importing default loadout
css
text/css
/* These variables are designed to inherit from your wiki's color variables.
If your wiki uses a different naming scheme, change the inner names to match yours.
If your wiki doesn't use color variables you should consider doing so,
otherwise you can replace the inner variables or the fallback values with colors that match your wiki.
*/
/* Light and dark are separated to make it easier for you to do local customizations but in the default version they are identical */
:root, .view-light .druid-container {
--druid-background-color: var(--wiki-content-background-color, #ffffff);
--druid-secondary-background-color: var(--wiki-accent-color, #36c);
--druid-secondary-background-label-color: var(--wiki-accent-label-color, #fff);
--druid-tertiary-background-color: var(--wiki-content-background-color--secondary, #eaecf0);
--druid-border-color: var(--wiki-content-border-color, #a7d7f9);
--druid-link-color: var(--wiki-content-link-color, #0645ad);
--druid-link-label-color: var(--wiki-content-link-label-color, #fff);
}
.view-dark .druid-container {
--druid-background-color: var(--wiki-content-background-color, #101418);
--druid-secondary-background-color: var(--wiki-accent-color, #36c);
--druid-secondary-background-label-color: var(--wiki-accent-label-color, #fff);
--druid-tertiary-background-color: var(--wiki-content-background-color--secondary, #202122);
--druid-border-color: var(--wiki-content-border-color, #72777d);
--druid-link-color: var(--wiki-content-link-color, #6d8afb);
--druid-link-label-color: var(--wiki-content-link-label-color, #000);
}
8fbdba8a0bd21c0bc819a404a5bec10170782fc2
MediaWiki:Gadgets/druid/customEditMe.css
8
259
283
2025-11-02T00:45:05Z
ARTIFICER
564804
Importing default loadout
css
text/css
/* Custom DRUID styles should go here */
7ecb3c635f03ba714e419c200113f47043f0e358
MediaWiki:Gadgets/druid/doc
8
260
284
2025-11-02T00:45:05Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
<includeonly>This gadget provides styles for {{ml|Infobox}}. You can customize:
* [[MediaWiki:Gadgets/druid/variablesEditMe.css]] - to customize the built-in variables (e.g. if you want to make the color of your infobox not match the wiki accent color). This file will load '''first''' out of all of the DRUID CSS files.
* [[MediaWiki:Gadgets/druid/customEditMe.css]] - to otherwise customize DRUID (e.g. if you want to change the padding, or add a border image, something that's not supported through variables. This file will load '''last''' out of all of the DRUID CSS files, so all rules here will overwrite rules in [[MediaWiki:Gadgets/druid/mainReadonly.css]] with equal specificity.
Please do NOT modify [[MediaWiki:Gadgets/druid/mainReadonly.css]]!! That page may be updated by wiki.gg staff via script, and the updates will not function if you modify it.
More documentation can be found at [[support:DRUID infoboxes|DRUID infoboxes]]<!--
--></includeonly><noinclude>This is the documentation page for [[{{#titleparts:{{FULLPAGENAME}}|-1}}]].</noinclude>
2813eb77787e37161b0ed7e4e85c9f5f2d7ad92e
MediaWiki:Newarticletext
8
261
285
2025-11-02T00:45:06Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
You have followed a link to a page that does not exist yet.
To create the page, start typing in the box below (see the [$1 help page] for more info).
If you are here by mistake, click your browser's <strong>back</strong> button.
778f9ef242eb3058ef30ed3325b901adb762a2af
MediaWiki:Gadgets
8
262
286
2025-11-02T00:45:06Z
ARTIFICER
564804
Importing default loadout
wikitext
text/x-wiki
See also: [[Special:Gadgets]] for a list of all installed gadgets, formatted in a friendly way.
{{Special:PrefixIndex/MediaWiki:Gadgets}}
14815d26ea4ae878b5e77e1781eeb35cd742ad2c
MediaWiki:Gadgets/druidScripts
8
263
287
2025-11-02T00:45:07Z
ARTIFICER
564804
Importing default loadout
GadgetDefinition
application/json
{
"settings": {
"section": "",
"default": true,
"hidden": true,
"supportsUrlLoad": false
},
"loadConditions": {
"actions": [],
"categories": [
"Pages with DRUID infoboxes"
],
"namespaces": [],
"contentModels": [],
"rights": []
},
"module": {
"pages": [
"main.js"
],
"dependencies": [
"jquery"
],
"type": "general"
}
}
5df47905f5c565c4a5c0da774413a6dee76eb7d1
MediaWiki:Gadgets/druidScripts/main.js
8
264
288
2025-11-02T00:45:07Z
ARTIFICER
564804
Importing default loadout
javascript
text/javascript
mw.hook( 'wikipage.content' ).add( () => {
$( '.druid-title-tab' ).off( 'click' )
.on( 'click', function () {
const $parent = $( this ).closest( '.druid-container' );
$parent.find( '.druid-toggleable' ).removeClass( 'focused' );
const i = $( this ).attr( 'data-druid' );
$parent.find( `.druid-toggleable[data-druid="${i}"]` ).addClass( 'focused' );
} );
$( '.druid-section-tab' ).off( 'click' )
.on( 'click', function () {
const $parent = $( this ).closest( '.druid-section-container' );
$parent.find( '.druid-toggleable' ).removeClass( 'focused' );
const i = $( this ).attr( 'data-druid' );
$parent.find( `.druid-toggleable[data-druid="${i}"]` ).addClass( 'focused' );
} );
$( '.druid-collapsible' ).off( 'click' )
.on( 'click', function () {
const kind = $( this ).attr( 'data-druid-section' );
$( this )
.toggleClass( 'druid-collapsible-collapsed' )
.closest( '.druid-container' )
.find( `[data-druid-section-row="${kind}"]` )
.toggleClass( 'druid-collapsed' );
} );
} );
/* End DRUID */
af8f73fc414f3fc0dae8d97a044675e9912fa457
MediaWiki:Gadgets/discordTemplate
8
265
289
2025-11-02T00:45:07Z
ARTIFICER
564804
Importing default loadout
GadgetDefinition
application/json
{
"settings": {
"section": "",
"package": true,
"default": true,
"hidden": true,
"supportsUrlLoad": false
},
"loadConditions": {
"actions": [],
"categories": [
"Pages with Discord embeds"
],
"namespaces": [],
"contentModels": [],
"rights": []
},
"module": {
"pages": [
"main.js"
],
"dependencies": [
"jquery"
],
"type": "general"
}
}
1232b7fbe2ff589295233393f6f387cf52793a2a
MediaWiki:Gadgets/discordTemplate/main.js
8
266
290
2025-11-02T00:45:08Z
ARTIFICER
564804
Importing default loadout
javascript
text/javascript
/**
* DiscordCompact.js
* ----------------------
* A very simple script to display a Discord widget.
* Version 0.0.2
* https://support.wiki.gg/wiki/DiscordCompact
* ----------------------
*/
$(function() {
var widget = $("#content #discord-compact-widget");
// Bail out if we didn't find a widget.
if (!widget.length) return;
var id = widget.attr("data-id");
// Ensure that the id is not blank.
if (id === "") throw new Error("DiscordCompact has a blank server id!");
// Ensure that the id consists only of numbers and is at least 17 characters long.
if (!new RegExp("^[0-9]{17}[0-9]+$").test(id)) throw new Error("DiscordCompact has an invalid server id!");
var apiBase = "https://discord.com/api/guilds/" + id;
// Get some information about the server, such as online member count and invite url.
// This also tells us if the server exists or has widgets disabled, so we look out for that too.
$.ajax(apiBase + "/widget.json").fail(function(req){
if (!req.responseJSON) throw new Error("DiscordCompact encountered an unknown error whilst fetching widget.json (status: " + req.status);
switch (req.responseJSON.code) {
case 10004:
throw new Error("DiscordCompact has a valid server id, but no such server exists!");
case 50004:
throw new Error("DiscordCompact has a valid server id, but that server has widgets disabled!");
default:
throw new Error("DiscordCompact encountered an unknown error whilst fetching widget.json (status: " + req.status + "; code: " + req.responseJSON.code + ")");
}
}).done(function(res){
const inviteURL = res.instant_invite;
// Warn if we can't get an invite URL.
if (inviteURL == null) console.warn("DiscordCompact cannot get an invite URL; does this server have an invite channel set in Widget settings?");
// Now get the widget image.
$.ajax({url: apiBase + "/widget.png?style=banner2", xhrFields: {responseType: "blob"}}).fail(function(req){
if (!req.responseJSON) throw new Error("DiscordCompact encountered an unknown error whilst fetching widget.png! (status: " + req.status);
throw new Error("DiscordCompact encountered an unknown error whilst fetching widget.png! (status: " + req.status + "; code: " + req.responseJSON.code + ")");
}).done(function(blob){
// Convert the image data into base64. This prevents us having to make the client request it a second time.
const imageReader = new FileReader();
imageReader.readAsDataURL(blob);
imageReader.onloadend = function() {
const b64Data = imageReader.result;
// Replace the widget with an <a> tag
widget.replaceWith(function() {
return $("<a>", {
id: widget.attr("id"),
class: widget.attr("class"),
style: widget.attr("style"),
alt: "Discord server widget",
href: inviteURL
});
});
// We need to grab the widget again to update it.
widget = $("#discord-compact-widget");
// Setup the CSS so that the image is displayed.
widget.css("display", "block");
widget.css("max-height", "76px");
widget.css("max-width", "320px");
// Create the image.
const widgetImage = document.createElement("img");
widgetImage.src = b64Data;
widgetImage.style.width = "100%";
widgetImage.style.height = "100%";
widgetImage.style.borderRadius = "5px";
widget.append(widgetImage);
// Prevent image dragging.
widget.on("dragstart", function(e) { e.preventDefault(); });
// We're done here.
console.log("DiscordCompact loaded successfully!");
}
});
});
});
/**
* based on https://dev.fandom.com/wiki/MediaWiki:DiscordIntegrator/code.js
*
* used by other wikis.
*/
$(function() {
'use strict';
var mconfig = mw.config.get([
'wgContentLanguage',
'wgUserLanguage',
'wgUserName'
]);
if (window.DiscordIntegratorLoaded) {
return;
}
window.DiscordIntegratorLoaded = true;
/**
* Main object
* @static
*/
var DiscordIntegrator = {
/**
* Initializing
*/
init: function() {
mw.hook('wikipage.content').add($.proxy(this.insertToContent, this));
},
/**
* Finding the designated places in content
* in which to place the widget and placing it
*/
insertToContent: function($content) {
$content.find('.DiscordIntegrator:not(.loaded)').each($.proxy(function(cabbage, el) {
el = $(el);
el.html(this.generateContent(el.data())).addClass('loaded');
}, this));
},
/**
* Determines the theme of the widget.
* @param {string} config Configured theme
* @return {string} 'light' or 'dark' depending on the wiki theme and configuration
*/
determineTheme: function(config) {
// If explicitly configured to light or dark.
if (config === 'dark') {
return 'dark';
}
if (config === 'light') {
return 'light';
}
/** If not configured **/
// try to determine based on wiki theme (set by themeToggle):
var clas = $(':root').attr('class');
var regex = /(^|\s)theme-(\w+)(\s|$)/;
var match = clas.match(regex);
if(match){
var wikiThemeName = match[2];
if(typeof(config) === 'object' && config !== null){ //with json theme config
if(config[wikiThemeName]){
return config[wikiThemeName];
}
}
if(wikiThemeName === 'light'){
return 'light';
}
if(wikiThemeName === 'dark'){
return 'dark';
}
}
// Otherwise, default to dark.
return 'dark';
},
/**
* Generating widget content from an object
* @return {string} Content of the widget
*/
generateContent: function(config) {
if (!config.id || !String(config.id).match(/\d{17,19}/)) {
return "Error: ID of the widget is malformed or not supplied, please see <a href='https://support.wiki.gg/wiki/DiscordWidget' title='the instructions'>the instructions</a> for how to find your server's ID. Please make sure you are not inserting <strong>the DiscordIntegrator template</strong> when asked for <strong>your widget ID</strong>.";
}
if (
(
config.loggedIn === true ||
Boolean(config['logged-in']) === true &&
config['logged-in'] !== 'false' &&
config['logged-in'] !== '{{{loggedIn}}}'
) && !mconfig.wgUserName
) {
return "Please <a href='/Special:UserLogin' title='log in'>log in</a> to see this widget.";
}
var username = config.username === '@disabled' ?
'' :
config.username === '@function' &&
typeof window.DiscordIntegratorGetUsername === 'function' ?
window.DiscordIntegratorGetUsername() :
config.username || mconfig.wgUserName;
return mw.html.element('iframe', {
src: 'https://discord.com/widget?id=' + config.id +
'&theme=' + this.determineTheme(config.theme) +
'&username=' + encodeURIComponent(username),
width: config.width || '100%',
height: config.height || '400px',
allowtransparency: 'true',
frameborder: '0',
title: "Discord server widget"
});
}
};
DiscordIntegrator.init();
});
1e1fd5704120cf67e15a757bd964c7295bdb464e
MediaWiki:Gadgets/luaImportLinks
8
267
291
2025-11-02T00:45:08Z
ARTIFICER
564804
Importing default loadout
GadgetDefinition
application/json
{
"settings": {
"section": "",
"package": true,
"default": true,
"hidden": true,
"supportsUrlLoad": false
},
"loadConditions": {
"actions": [],
"categories": [],
"namespaces": [
828
],
"contentModels": [],
"rights": []
},
"module": {
"pages": [
"main.js"
],
"dependencies": [
"jquery"
],
"type": "general"
}
}
e5843d78effc2d04aa1fde18970885a1845ae525
MediaWiki:Gadgets/luaImportLinks/main.js
8
268
292
2025-11-02T00:45:09Z
ARTIFICER
564804
Importing default loadout
javascript
text/javascript
/* Link to imported modules from Lua code */
$(function() {
var config = mw.config.get([
'wgCanonicalNamespace',
'wgFormattedNamespaces'
]);
if (config.wgCanonicalNamespace !== 'Module') {
return;
}
var localizedNamespace = config.wgFormattedNamespaces[828];
$('.s1, .s2, .s').each(function() {
var $this = $(this);
var html = $this.html();
var quote = html[0];
var isLongStringQuote = quote === '[';
var quoteRE = new RegExp('^\\' + quote + '|\\' + quote + '$', 'g');
if (isLongStringQuote) {
quoteRE = /^\[\[|\]\]$/g;
}
var name = html.replace(quoteRE, '');
var isEnglishPrefix = name.startsWith('Module:');
var isLocalizedPrefix = name.startsWith(localizedNamespace + ':');
var isDevPrefix = name.startsWith('Dev:');
if (isEnglishPrefix || isLocalizedPrefix || isDevPrefix) {
var attrs = {
href: mw.util.getUrl(name)
};
if (isDevPrefix) {
attrs.href = 'https://commons.wiki.gg/wiki/Module:' + mw.util.wikiUrlencode(name.replace('Dev:', ''));
attrs.target = '_blank';
attrs.rel = 'noopener';
}
var link = mw.html.element('a', attrs, name);
var str = quote + link + quote;
if (isLongStringQuote) {
str = '[[' + link + ']]';
}
$this.html(str);
}
});
});
dc09796545586723653a906ae1fed87411f49536
MediaWiki:Gadgets/spoilers/main.js
8
269
293
2025-11-02T00:45:09Z
ARTIFICER
564804
Importing default loadout
javascript
text/javascript
/* [[Template:Spoiler]] */
mw.hook('wikipage.content').add(function() {
$('.spoiler-content')
.off('click') // in case this code is loaded twice
.on('click', function(e){
$(this).toggleClass('show');
}).find('a').on('click', function(e){
e.stopPropagation();
});
});
/* End Template:Spoiler */
c96e5a798a1781287a56037db79ab9094a3eae2b
MediaWiki:Gadgets/spoilers
8
270
294
2025-11-02T00:45:09Z
ARTIFICER
564804
Importing default loadout
GadgetDefinition
application/json
{
"settings": {
"section": "",
"package": true,
"default": true,
"hidden": true,
"supportsUrlLoad": false
},
"loadConditions": {
"actions": [],
"categories": [
"Pages with spoilers"
],
"namespaces": [],
"contentModels": [],
"rights": []
},
"module": {
"pages": [
"main.js"
],
"dependencies": [
"jquery"
],
"type": "general"
}
}
e2aacbae968c704385f3937e6b0004f263907193
MediaWiki:Gadgets/charInserts
8
271
295
2025-11-02T00:45:10Z
ARTIFICER
564804
Importing default loadout
GadgetDefinition
application/json
{
"settings": {
"section": "",
"package": true,
"default": true,
"hidden": true,
"supportsUrlLoad": false
},
"loadConditions": {
"actions": [
"edit"
],
"categories": [],
"namespaces": [],
"contentModels": [],
"rights": []
},
"module": {
"pages": [
"main.js"
],
"dependencies": [
"jquery"
],
"type": "general"
}
}
518bbdc62f3fe767736f2de6ee9ba2b7eb9ab0a8
MediaWiki:Gadgets/charInserts/main.js
8
272
296
2025-11-02T00:45:10Z
ARTIFICER
564804
Importing default loadout
javascript
text/javascript
$(function() {
$('.mw-charinsert-item').each(function() {
$(this).text($(this).closest('div').attr('data-ci-label'));
$(this).css('display', 'inline-block');
});
$('.ci-loading-text').css('display','none');
});
daabc4b17b7729432f5c146630a0715a7abc13e9
MediaWiki:Gadgets/themeColorEditor
8
273
297
2025-11-02T00:45:10Z
ARTIFICER
564804
Importing default loadout
GadgetDefinition
application/json
{
"settings": {
"section": "",
"package": true,
"default": true,
"hidden": false,
"supportsUrlLoad": false
},
"loadConditions": {
"actions": [],
"categories": [],
"namespaces": [
8
],
"contentModels": [
"css"
],
"rights": [
"editinterface"
]
},
"module": {
"pages": [
"main.js"
],
"dependencies": [],
"type": "general"
}
}
b512452ab2c0b2fd4d86d6a70c4c80fba41d14ed
MediaWiki:Gadgets/themeColorEditor/main.js
8
274
298
2025-11-02T00:45:11Z
ARTIFICER
564804
Importing default loadout
javascript
text/javascript
$(function() {
if (mw.config.get('wgPageName') != "MediaWiki:Common.css") return;
mw.loader.load( 'https://commons.wiki.gg/load.php?lang=en&modules=ext.gadget.themeColorEditorScript&skin=vector&maxage=360&smaxage=360' )
});
a6d1c6789815c3c323c2afd84def2c1ca23d5efe
MediaWiki:Gadgets/ranger/variables.css
8
275
299
2025-11-02T00:45:11Z
ARTIFICER
564804
Importing default loadout
css
text/css
.ranger-navbox{
--navbox-background: var(--wiki-content-background-color); /* for entire navbox */
--navbox-margin: 0.5em auto;
--navbox-padding: 4px;
--navbox-gap: 3px; /* when using zero-value, it must be 0px */
--navbox-outer-border-color: var(--wiki-content-border-color--accent);
--navbox-outer-border-width: 1px;
--navbox-outer-border-style: solid;
--navbox-outer-border-radius: 0px;
--navbox-font-size: calc(1em - 2px);
--navbox-title-color: var(--wiki-accent-label-color);
--navbox-title-font-size: calc(125%);
--navbox-title-background: var(--wiki-accent-color);
--navbox-title-icon-color: var(--wiki-accent-label-color);
--navbox-title-link-color: var(--navbox-title-color);
--navbox-title-link-color--visited: var(--navbox-title-link-color);
--navbox-title-link-color--hover: var(--wiki-accent-link-color);
--navbox-title-redlink-color: var(--navbox-title-link-color);
--navbox-title-link-decoration: underline solid;
--navbox-title-redlink-decoration: underline wavy;
--navbox-title-padding--y: 0.5em;
--navbox-above-background: color-mix(in srgb, var(--wiki-content-text-color) 15%, transparent);
--navbox-above-color: var(--wiki-content-text-color);
--navbox-above-padding: var(--navbox-list-padding);
--navbox-below-background: var(--navbox-above-background);
--navbox-below-color: var(--navbox-above-color);
--navbox-below-padding: var(--navbox-above-padding);
--navbox-header-color: var(--navbox-title-color);
--navbox-header-font-size: calc(110%);
--navbox-header-background: var(--navbox-title-background);
--navbox-header-icon-color: var(--navbox-title-icon-color);
--navbox-header-link-color: var(--navbox-title-link-color);
--navbox-header-link-color--visited: var(--navbox-title-link-color--visited);
--navbox-header-link-color--hover: var(--navbox-title-link-color--hover);
--navbox-header-redlink-color: var(--navbox-title-redlink-color);
--navbox-header-link-decoration: var(--navbox-title-link-decoration);
--navbox-header-redlink-decoration: var(--navbox-title-redlink-decoration);
--navbox-header-padding--y: 0.3em;
--navbox-subheader-font-size: calc(100%);
--navbox-subheader-padding--y: calc(var(--navbox-header-padding--y)/2);
--navbox-list-background: color-mix(in srgb, var(--wiki-content-text-color) 5%, transparent);
--navbox-list-background--striped: color-mix(in srgb, var(--wiki-content-text-color) 8%, transparent);
--navbox-list-color: var(--wiki-content-text-color);
--navbox-list-padding: 0.25em 0.5em;
/* --navbox-group-* also apply to .ranger-subgroup */
--navbox-group-text-align: left;
--navbox-group-text-align--mobile: left; /* only for mobile view */
--navbox-group-background: color-mix(in srgb, var(--wiki-accent-color) 20%, transparent);
--navbox-group-color: var(--wiki-content-text-color);
--navbox-group-padding: var(--navbox-list-padding);
--navbox-tree-line-color: color-mix(in srgb, var(--wiki-accent-color) 30%, transparent);
--navbox-tree-line-width: 2px;
--navbox-tree-indent: 1em;
--navbox-tree-line-indent: 0.5em;
--navbox-tree-line-spacing: var(--navbox-gap);
--icon-chevron-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='icon icon-tabler icon-tabler-chevron-down' width='24' height='24' viewBox='0 0 24 24' stroke-width='2' stroke='currentColor' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M6 9l6 6l6 -6'%3E%3C/path%3E%3C/svg%3E");
--icon-metalinks: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='icon icon-tabler icon-tabler-edit' width='24' height='24' viewBox='0 0 24 24' stroke-width='2' stroke='currentColor' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1'%3E%3C/path%3E%3Cpath d='M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415z'%3E%3C/path%3E%3Cpath d='M16 5l3 3'%3E%3C/path%3E%3C/svg%3E");
--navbox-icon-offset--x: 0.5rem; /* should be an absolute length (rem-based or px-based) */
}
.ranger-navbox.pill,
.ranger-navbox.pill-mobile{
/** vars for the "pill" style only (`.pill` and ".pill-mobile" clases) **/
--navbox-pill-gap: 0.3em;
--navbox-pill-padding: 0.25em 0.75em;
--navbox-pill-border-radius: 3px;
--navbox-pill-box-shadow: none;
--navbox-pill-background: color-mix(in srgb, var(--wiki-content-text-color) 5%, transparent);
--navbox-pill-box-shadow--hover: inset 0 0 3px var(--navbox-list-color);
--navbox-pill-background--hover: var(--navbox-pill-background);
--navbox-pill-selflink-background: color-mix(in srgb, var(--wiki-accent-color) 15%, transparent);/* background of pills with selflink in them */
/* remove list cell background */
--navbox-list-background: none;
--navbox-list-background--striped: color-mix(in srgb, var(--wiki-content-text-color) 3%, transparent);
}
.ranger-navbox.no-underline-title-links{
--navbox-title-link-color: var(--wiki-accent-link-color);
--navbox-title-link-decoration: none;
--navbox-title-redlink-decoration: none;
}
.ranger-navbox.noborder,
.ranger-navbox.no-border{
--navbox-padding: 0px;
--navbox-outer-border-width: 0px;
}
/******************************
* Fallback for older browsers *
*******************************/
@supports not (color:color-mix(in srgb, #000, transparent)) {
.ranger-navbox {
--navbox-above-background: var(--wiki-content-background-color--secondary);
--navbox-list-background: transparent;
--navbox-list-background--striped: var(--wiki-content-background-color--secondary);
--navbox-group-background: var(--wiki-content-background-color--secondary);
--navbox-tree-line-color: var(--wiki-content-background-color--secondary);
}
.ranger-navbox.pill,
.ranger-navbox.pill-mobile {
--navbox-pill-background: var(--wiki-content-background-color--secondary);
--navbox-list-background--striped: transparent;
--navbox-pill-selflink-background: var(--wiki-content-background-color--secondary);
}
}
/***************
* End fallback *
****************/
0f49887270380cdac6968f16cfc75a115818c39a
MediaWiki:Gadgets/hoverShowSpoilers
8
276
300
2025-11-02T00:45:12Z
ARTIFICER
564804
Importing default loadout
GadgetDefinition
application/json
{
"settings": {
"section": "",
"package": false,
"default": false,
"hidden": false,
"supportsUrlLoad": false
},
"loadConditions": {
"actions": [],
"categories": [
"Pages with spoilers"
],
"namespaces": [],
"contentModels": [],
"rights": []
},
"module": {
"pages": [
"main.css"
],
"dependencies": [],
"type": "styles"
}
}
427adff0005c5bf986f2bca5bf83943f65359867
MediaWiki:Gadgets/mpEditLinks
8
277
301
2025-11-02T00:45:12Z
ARTIFICER
564804
Importing default loadout
GadgetDefinition
application/json
{
"settings": {
"section": "",
"package": true,
"default": true,
"hidden": false,
"supportsUrlLoad": false
},
"loadConditions": {
"actions": [],
"categories": [
"Pages using IMP"
],
"namespaces": [],
"contentModels": [],
"rights": [
"edit"
]
},
"module": {
"pages": [
"main.css",
"main.js"
],
"messages": [
"gadget-mpEditLinks-edit-link-text",
"gadget-mpEditLinks-toggle-link-text"
],
"dependencies": [
"jquery",
"mediawiki.jqueryMsg",
"mediawiki.util"
],
"type": "general"
}
}
c24cb75a2b66e08cd424dbe77b185a688f8e68ac
MediaWiki:Gadgets/collapsibleSidebarSections
8
278
302
2025-11-02T00:45:13Z
ARTIFICER
564804
Importing default loadout
GadgetDefinition
application/json
{
"settings": {
"section": "appearance",
"package": true,
"default": false,
"hidden": false,
"supportsUrlLoad": false
},
"loadConditions": {
"actions": [],
"categories": [],
"namespaces": [],
"contentModels": [],
"rights": []
},
"module": {
"pages": [
"main.css",
"main.js"
],
"dependencies": [
"jquery"
],
"type": "general"
}
}
d67dc8fabaf4e1d275a3b17c42f3d707f00b707c
MediaWiki:Gadgets/collapsibleSidebarSections/main.js
8
279
303
2025-11-02T00:45:13Z
ARTIFICER
564804
Importing default loadout
javascript
text/javascript
$(function(){
// CONFIG section, you can edit this part
// a list of sections that should be collapsed by default for *all users*.
// This should be the name of the heading as listed in Mediawiki:Sidebar and is case-sensitive.
// For example, if you have '* Character_Classes' and you want that section collapsed, add 'Character_Classes' into the brackets below.
// Separate entries with commas and use underscores instead of spaces.
// Example list: ['Character_Classes', 'Items', 'External_Links']
// Please DO NOT add navigation or tb into this list, as they are expected functionality.
var INITIALLY_COLLAPSED_IDS = [];
var MIN_ACTIVATION_WIDTH = 721;
//END CONFIG
// add the p- onto ids for ease of use, if not present
INITIALLY_COLLAPSED_IDS.forEach(function(id, index){
if(!id.startsWith('p-')){
INITIALLY_COLLAPSED_IDS[index] = 'p-' + id;
}
});
var $portals = $("#mw-panel .vector-menu-portal");
var setup = function(){
$portals.each(function(index, el){
if(window.innerWidth < MIN_ACTIVATION_WIDTH) {
return;
}
var $el = $(el);
var $id = $el.attr("id");
if(!$id){
return;
}
// check if this portal should be collapsed
if(
// portal is set to be initially collapsed and user has not indicated that they want it open
(INITIALLY_COLLAPSED_IDS.includes($id) && localStorage.getItem('sidebar_c_'+$id) != "n")
|| // or
// user has indicated they want this portal collapsed
(localStorage.getItem('sidebar_c_'+$id) === "y")
){
$el.addClass('collapsed').find('.vector-menu-content').slideUp(0);
}
});
}
setup();
$(window).on('resize', setup);
$portals.on("click", "h3", function(event){
if(window.innerWidth < MIN_ACTIVATION_WIDTH) {
return;
}
var $el = $(this).parent();
var $id = $el.attr("id");
if(!$id){
return;
}
$el.toggleClass('collapsed');
if($el.hasClass('collapsed')){ // more consistent between class and slide status.
localStorage.setItem('sidebar_c_'+$id, "y");
$el.find('.vector-menu-content').slideUp('fast');
}
else{
localStorage.setItem('sidebar_c_'+$id, "n");
$el.find('.vector-menu-content').slideDown('fast');
}
});
});
63d4425138f9c81e8294fbd01a08de9e1f58256a
MediaWiki:Gadgets/collapsibleSidebarSections/main.css
8
280
304
2025-11-02T00:45:13Z
ARTIFICER
564804
Importing default loadout
css
text/css
@media screen and (min-width: 721px) {
.client-js #mw-panel .portal:not(#p-ext-discordwidget) .vector-menu-heading {
cursor: pointer;
display: flex;
align-items: center;
justify-content: space-between;
transition: all 0.2s;
}
.client-js #mw-panel .portal:not(#p-ext-discordwidget) .vector-menu-heading::after {
content: "";
display: block;
pointer-events: none;
width: 1em;
height: 1em;
margin-top: 1px; /* offset */
--mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='icon icon-tabler icon-tabler-chevron-down' width='24' height='24' viewBox='0 0 24 24' stroke-width='2' stroke='currentColor' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M6 9l6 6l6 -6'%3E%3C/path%3E%3C/svg%3E") no-repeat;
-webkit-mask: var(--mask);
mask: var(--mask);
-webkit-mask-size: 100% 100%;
mask-size: 100% 100%;
-webkit-mask-position: center center;
mask-position: center center;
background-color: var(--wiki-sidebar-heading-color, var(--wiki-sidebar-link-color));
transform: rotate(180deg);
}
.client-js #mw-panel .portal:not(#p-ext-discordwidget).collapsed .vector-menu-heading::after {
transform: rotate(0deg);
}
.client-js #mw-panel .vector-menu-portal.collapsed .vector-menu-heading {
margin-bottom: 0;
}
}
5ab6f9e9146615a8038e81b9990004fdb06e00c0
MediaWiki:Gadgets/uploadMultipleFiles
8
281
305
2025-11-02T00:45:14Z
ARTIFICER
564804
Importing default loadout
GadgetDefinition
application/json
{
"settings": {
"section": "",
"package": true,
"default": true,
"hidden": false,
"supportsUrlLoad": false
},
"loadConditions": {
"actions": [],
"categories": [],
"namespaces": [
-1
],
"contentModels": [],
"rights": [
"edit",
"upload"
]
},
"module": {
"pages": [
"main.js"
],
"dependencies": [
"jquery",
"mediawiki.util"
],
"type": "general"
}
}
13bc1e984c367575a7b4f4ac29d2cf75b4f01c6c
MediaWiki:Gadgets/purge
8
282
306
2025-11-02T00:45:14Z
ARTIFICER
564804
Importing default loadout
GadgetDefinition
application/json
{
"settings": {
"section": "",
"package": true,
"default": true,
"hidden": false,
"supportsUrlLoad": false
},
"loadConditions": {
"actions": [],
"categories": [],
"namespaces": [],
"contentModels": [],
"rights": [
"edit"
]
},
"module": {
"pages": [
"main.js"
],
"messages": [
"cargo-purgecache",
"cargo-purgecache-failed",
"action-purge"
],
"dependencies": [
"mediawiki.util",
"mediawiki.api",
"mediawiki.jqueryMsg"
],
"type": "general"
}
}
ebb5f4bfef49746bef46514b0ffaccee57f3f1cd
MediaWiki:Gadgets/ranger/custom.css
8
283
307
2025-11-02T00:45:15Z
ARTIFICER
564804
Importing default loadout
css
text/css
/* Custom RANGER styles can go here. Rules here will override rules of equal specificity in main.css */
769d3248cef93d2b58dcf7339da923494f5173f8
MediaWiki:Gadgets/vectorScripts
8
284
308
2025-11-02T00:45:15Z
ARTIFICER
564804
Importing default loadout
GadgetDefinition
application/json
{
"settings": {
"section": "",
"package": true,
"default": true,
"hidden": true,
"supportsUrlLoad": false
},
"loadConditions": {
"actions": [],
"categories": [],
"namespaces": [],
"contentModels": [],
"rights": [],
"skins": [
"vector"
]
},
"module": {
"pages": [
"main.js"
],
"dependencies": [],
"type": "general"
}
}
f26fca963d213febee869477a05933a6fedfc542
MediaWiki:Gadgets/vectorScripts/main.js
8
285
309
2025-11-02T00:45:16Z
ARTIFICER
564804
Importing default loadout
javascript
text/javascript
/*** Mobile navigation toggle button ***/
$( function () {
const BUTTON_CLASS = 'mobile-nav-toggle';
const EXPANDED_CLASS = 'nav--expanded';
if (document.querySelector('button.' + BUTTON_CLASS)){return;} // early return to avoid double button if this runs twice
let mobileSidebarButton = document.createElement( 'button' );
let sidebar = document.getElementById( 'mw-panel' );
mobileSidebarButton.className = BUTTON_CLASS;
mobileSidebarButton.addEventListener( 'click', function () {
mobileSidebarButton.classList.toggle( EXPANDED_CLASS );
sidebar.classList.toggle( EXPANDED_CLASS );
} );
sidebar.prepend( mobileSidebarButton );
document.body.classList.add( 'has-vector-mobile-menu' );
} );
/*** End mobile navigation toggle button ***/
/*** #mw-head collapsing fix ***/
/*** IMPORTANT: Do not copy this code if your wiki is not updated to default loadout 2.0 (May 22, 2025) or later, or your navigation tabs will break ***/
mw.loader.using('skins.vector.legacy.js', function() {
$.collapsibleTabs.calculateTabDistance = function(){
return parseInt(window.getComputedStyle(document.getElementById( 'right-navigation' ), '::before').width ) - 1;
}
});
/*** END #mw-head collapsing fix ***/
a167e0e95038b575ef527cf63126aa5289a8439b
MediaWiki:Gadgets/userProfile
8
286
310
2025-11-02T00:45:16Z
ARTIFICER
564804
Importing default loadout
GadgetDefinition
application/json
{
"settings": {
"section": "",
"package": true,
"default": true,
"hidden": false,
"supportsUrlLoad": false
},
"loadConditions": {
"actions": [],
"categories": [],
"namespaces": [
-1,
2,
3
],
"contentModels": [],
"rights": []
},
"module": {
"pages": [
"main.js",
"main.css"
],
"dependencies": [
"mediawiki.interface.helpers.styles",
"mediawiki.util",
"mediawiki.api",
"jquery"
],
"type": "general"
}
}
e9c76b459199205abae5373548f6ff36e83fefcc
File:Site-favicon.ico
6
287
311
2025-11-02T19:28:00Z
MasterOfDisillusionment
431405
Site favicon. Original source of the graphic: Malefact: Evil Unchained, the game.
wikitext
text/x-wiki
== Summary ==
Site favicon. Original source of the graphic: Malefact: Evil Unchained, the game.
== Licensing ==
{{License|game}}
7432b99a991ae5b0c2c31e5e6131399734c35d99
312
311
2025-11-02T19:28:48Z
MasterOfDisillusionment
431405
Protected "[[File:Site-favicon.ico]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
== Summary ==
Site favicon. Original source of the graphic: Malefact: Evil Unchained, the game.
== Licensing ==
{{License|game}}
7432b99a991ae5b0c2c31e5e6131399734c35d99
File:Site-logo.png
6
288
313
2025-11-02T19:30:41Z
MasterOfDisillusionment
431405
Banner graphic for the hardcoredoom wiki.
wikitext
text/x-wiki
== Summary ==
Banner graphic for the hardcoredoom wiki.
== Licensing ==
{{License|permission}}
38ac3a0d2287df992c8ef6c6f21107aa4b5a0639
314
313
2025-11-02T19:31:04Z
MasterOfDisillusionment
431405
Protected "[[File:Site-logo.png]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
== Summary ==
Banner graphic for the hardcoredoom wiki.
== Licensing ==
{{License|permission}}
38ac3a0d2287df992c8ef6c6f21107aa4b5a0639
MediaWiki:Common.css
8
239
315
263
2025-11-02T19:36:08Z
MasterOfDisillusionment
431405
css
text/css
/* CSS placed here will be applied to all skins */
/******************************************************************************************
********************************* Start user-edit variables *******************************
******************************************************************************************/
/*****************************************
****** START BASIC DESIGN VARIABLES ******
----------------------------------------*/
:root {
--wiki-content-heading-font-family: 'Linux Libertine', 'Georgia', 'Times', serif;
--wiki-sidebar-heading-font-family: sans-serif;
--wiki-content-border-radius: 0px;
--wiki-sidebar-border-radius: 0px;
}
/*----------------------------------------
******* END BASIC DESIGN VARIABLES *******
*****************************************/
/*****************************************
****** START BASIC COLOR VARIABLES *******
----------------------------------------*/
:root,
/* Begin light styles, delete from here to "end light styles" if you don't want your wiki to support any light themes (remove from [[Mediawiki:Theme-definitions]] too, or ask wiki.gg staff for help doing this) */
/* FYI: .view- will affect any theme marked |kind=light, */
/* individual themes are prefixed with .theme- instead */
.view-light {
/**********************
* Probably edit these * [ LIGHT VIEW ]
***********************/
--wiki-body-background-color: #F6F6F6;
--wiki-body-background-image: url(filepath://Site-background.jpg);
--wiki-content-background-color: #ffffff;
--wiki-content-background-opacity: 100%;
--wiki-content-border-color: #a7d7f9;
--wiki-content-link-color: #0645ad; /* if changing this, remember to change --wiki-icon-to-link-filter as well!!! */
/* [ LIGHT VIEW ] */
--wiki-accent-color: #3366cc;
--wiki-accent-label-color: #ffffff;
--wiki-accent-link-color: #D5FB51;
--wiki-icon-to-link-filter: invert(20%) sepia(93%) saturate(2141%) hue-rotate(210deg) brightness(83%) contrast(103%); /* put your --wiki-content-link-color into https://mrpie5.gitlab.io/css-filter-generator/ */
/**/
}
/* end light styles */
/* Begin dark styles, delete from here to "end dark styles" if you don't want your wiki to support any dark themes (remove it from [[Mediawiki:Theme-definitions]] too, or ask wiki.gg staff for help doing this) */
/* FYI: .view- will affect any theme marked |kind=dark, */
/* individual themes are prefixed with .theme- instead */
.view-dark {
/**********************
* Probably edit these * [ DARK VIEW ]
***********************/
--wiki-body-background-color: #171717;
--wiki-body-background-image: url(filepath://Site-background-dark.jpg);
--wiki-content-background-color: #202020;
--wiki-content-background-opacity: 90%;
--wiki-content-border-color: #991A51;
--wiki-content-link-color: #6d8afb; /* if changing this, remember to change --wiki-icon-to-link-filter as well!!! */
/* [ DARK VIEW ] */
--wiki-accent-color: #ff4d9d;
--wiki-accent-label-color: #000;
--wiki-accent-link-color: #1e1e43;
--wiki-icon-to-link-filter: invert(60%) sepia(70%) saturate(3715%) hue-rotate(206deg) brightness(101%) contrast(97%); /* put your --wiki-content-link-color into https://mrpie5.gitlab.io/css-filter-generator/ */
/**/
}
/* End dark styles */
/*----------------------------------------
******* END BASIC COLOR VARIABLES ********
*****************************************/
/*****************************************
**** START ADVANCED COLOR VARIABLES ******
----------------------------------------*/
:root,
.view-light {
/*******************
* Maybe edit these * [ LIGHT VIEW ]
********************/
--wiki-body-background-position: top center;
--wiki-body-background-size: cover;
--wiki-body-background-repeat: no-repeat;
--wiki-body-background-attachment: fixed;
--wiki-content-background-color--secondary: color-mix(in srgb, var(--wiki-content-background-color) 96%, var(--wiki-content-dynamic-color));
--wiki-content-text-color: #111111;
--wiki-content-link-color--visited: var(--wiki-content-link-color);
--wiki-content-link-color--hover: var(--wiki-content-link-color);
--wiki-content-redlink-color: #ba0000;
--wiki-content-heading-color: var(--wiki-content-text-color);
--wiki-content-heading-border-color: var(--wiki-content-border-color);
/* [ LIGHT VIEW ] */
--wiki-navigation-background-color: var(--wiki-content-background-color--secondary);
--wiki-navigation-border-color: var(--wiki-navigation-selected-border-color);
--wiki-navigation-text-color: var(--wiki-content-link-color);
--wiki-navigation-selected-background-color: var(--wiki-content-background-color);
--wiki-navigation-selected-border-color: var(--wiki-content-border-color);
--wiki-navigation-selected-text-color: var(--wiki-content-text-color);
/* [ LIGHT VIEW ] */
--wiki-neutral-color: var(--wiki-content-text-mix-color);
--wiki-alert-color: #bf0017;
--wiki-warning-color: #b05f30;
--wiki-success-color: #0c742f;
/**/
/***********************************
* Likely do not need to edit these * [ LIGHT VIEW ]
************************************/
--wiki-body-dynamic-color: #000000;
--wiki-body-dynamic-color--inverted: #ffffff;
--wiki-body-dynamic-color--secondary: #333333;
--wiki-body-dynamic-color--secondary--inverted: #cccccc;
--wiki-content-border-color--secondary: color-mix(in srgb, var(--wiki-content-border-color) 50%, transparent);
--wiki-content-border-color--accent: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent);
--wiki-content-link-label-color: #ffffff;
--wiki-content-dynamic-color: #000000;
--wiki-content-dynamic-color--inverted: #ffffff;
--wiki-content-dynamic-color--secondary: #333333;
--wiki-content-dynamic-color--secondary--inverted: #cccccc;
/* [ LIGHT VIEW ] */
--wiki-alert-label-color: #ffffff;
--wiki-warning-label-color: #ffffff;
--wiki-success-label-color: #ffffff;
--wiki-icon-general-filter: ; /* do not set this to none, ignore the "unexpected token" error */
/**/
}
.view-dark {
/*******************
* Maybe edit these * [ DARK VIEW ]
********************/
--wiki-body-background-position: top center;
--wiki-body-background-size: cover;
--wiki-body-background-repeat: no-repeat;
--wiki-body-background-attachment: fixed;
--wiki-content-background-color--secondary: color-mix(in srgb, var(--wiki-content-background-color) 96%, var(--wiki-content-dynamic-color));
--wiki-content-text-color: #ededed;
--wiki-content-link-color--visited: var(--wiki-content-link-color);
--wiki-content-link-color--hover: var(--wiki-content-link-color);
--wiki-content-redlink-color: #FC5B4F;
--wiki-content-heading-color: var(--wiki-content-text-color);
--wiki-content-heading-border-color: var(--wiki-content-border-color);
/* [ DARK VIEW ] */
--wiki-navigation-background-color: var(--wiki-content-background-color--secondary);
--wiki-navigation-border-color: var(--wiki-navigation-selected-border-color);
--wiki-navigation-text-color: var(--wiki-content-link-color);
--wiki-navigation-selected-background-color: var(--wiki-content-background-color);
--wiki-navigation-selected-border-color: var(--wiki-content-border-color);
--wiki-navigation-selected-text-color: var(--wiki-content-text-color);
/* [ DARK VIEW ] */
--wiki-neutral-color: var(--wiki-content-text-mix-color);
--wiki-alert-color: #ff576a;
--wiki-warning-color: #cf721c;
--wiki-success-color: #13aa45;
/**/
/***********************************
* Likely do not need to edit these * [ DARK VIEW ]
************************************/
--wiki-body-dynamic-color: #ffffff;
--wiki-body-dynamic-color--inverted: #000000;
--wiki-body-dynamic-color--secondary: #cccccc;
--wiki-body-dynamic-color--secondary--inverted: #333333;
--wiki-content-border-color--secondary: color-mix(in srgb, var(--wiki-content-border-color) 50%, transparent);
--wiki-content-border-color--accent: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent);
--wiki-content-link-label-color: #000;
--wiki-content-dynamic-color: #ffffff;
--wiki-content-dynamic-color--inverted: #000000;
--wiki-content-dynamic-color--secondary: #cccccc;
--wiki-content-dynamic-color--secondary--inverted: #333333;
/* [ DARK VIEW ] */
--wiki-alert-label-color: #000000;
--wiki-warning-label-color: #000000;
--wiki-success-label-color: #000000;
--wiki-icon-general-filter: invert(100%);
}
/*----------------------------------------
***** END ADVANCED COLOR VARIABLES *******
*****************************************/
/*****************************************
**** START ADVANCED DESIGN VARIABLES *****
----------------------------------------*/
:root {
/***********************
start logo position
----------------------*/
--wiki-is-top-logo: 1; /* 1 = center logo at the top of the page; 0 = logo at the top left of the page */
--wiki-logo-file-width: 510; /* Width of the image file in px. Put a number without the letters `px`. */
--wiki-logo-file-height: 83; /* Height of the image file in px. Put a number without the letters `px`. */
--wiki-logo-height: calc(var(--wiki-logo-file-height)*1px); /* Valid only when --wiki-is-top-logo is 1. The height the logo should be shown */
--wiki-logo-margin: 15px; /* the width of margin below the logo. When --wiki-is-top-logo is 1, this is also the default value of --wiki-top-spacing */
/*-----------------------
end logo position
***********************/
--wiki-is-navigation-inside-content: 0; /* 0 = default navigation tabs layout; 1 = navigation tabs inside content box */
--wiki-body-font-family: sans-serif;
--wiki-content-firstheading-font-family: var(--wiki-content-heading-font-family); /* only apply to the main title of article */
/****** the following length variables must have units specified even if 0, ignore the warning *****/
--wiki-content-border-width: 1px;
--wiki-sidebar-width: 10em; /* width of sidebar(#mw-panel) */
--wiki-sidebar-portal-spacing: 0px;
--wiki-sidebar-border-width: var(--wiki-content-border-width);
--wiki-navigation-border-radius: 0px; /* border radius of tabs */
/*******************
* Maybe edit these * [ DESIGN ]
********************/
--wiki-logo-filter: none;
/****** the following length variables must have units specified even if 0, ignore the warning *****/
--wiki-content-border-top-radius: var(--wiki-content-border-radius);
--wiki-content-border-style: solid;
--wiki-content-border-image: none;
--wiki-content-backdrop-filter: none;
--wiki-page-content-max-width: 9999px; /* max width of sidebar+gap+content, must be a length value. A huge value can be used to indicate no limit, e.g. 99999px */
--wiki-gap-between-sidebar-and-content: 1em; /* gap between sidebar(#mw-panel) and content(#content) */
--wiki-sidebar-font-size: 0.75em; /* please use em or rem for this */
--wiki-sidebar-line-height: 1.125;
--wiki-sidebar-heading-font-size: 0.75em; /* please use em or rem for this */
--wiki-sidebar-margin: 0em;
--wiki-sidebar-list-item-padding: 0.25em 0.25rem;
--wiki-sidebar-list-padding: 0.25rem;
--wiki-sidebar-list-item-background--hover: none; /* background of hover item */
--wiki-navigation-font-size: 0.8125em; /* please use em or rem for this */
--wiki-navigation-font-weight: normal;
--wiki-navigation-selected-font-weight: var(--wiki-navigation-font-weight);
--wiki-navigation-text-transform: none;
--wiki-navigation-height: 2.75rem; /* height of navigation area,include spacing above tabs */
--wiki-navigation-left-spacing: calc( (1 - var(--wiki-is-navigation-inside-content))*var(--wiki-content-border-radius) + var(--wiki-is-navigation-inside-content) * 0.5rem );
--wiki-navigation-right-spacing: calc( var(--wiki-is-navigation-inside-content) * 0.5rem );
--wiki-navigation-box-background-color: var(--wiki-content-background-color);
--wiki-navigation-box-background-opacity: calc(var(--wiki-content-background-opacity)*0.8*var(--wiki-is-navigation-inside-content));
--wiki-navigation-box-background: color-mix(in srgb, var(--wiki-navigation-box-background-color) var(--wiki-navigation-box-background-opacity), transparent); /* usually only needed when --wiki-is-navigation-inside-content is 1 */
--wiki-navigation-box-border-image: none; /* usually only needed when --wiki-is-navigation-inside-content is 1 */
--wiki-navigation-box-backdrop-filter: none; /* usually only needed when --wiki-is-navigation-inside-content is 1 */
--wiki-navigation-selected-backdrop-filter: var(--wiki-content-backdrop-filter); /* usually only needed when --wiki-is-navigation-inside-content is 0 */
--wiki-navigation-backdrop-filter: var(--wiki-navigation-selected-backdrop-filter); /* usually only needed when --wiki-is-navigation-inside-content is 0 */
/* nav tabs style. The vector gradient is default.
* If you want to customize the style of tabs, it's easier to start with the following settings:
* --wiki-navigation-background-image: none;
* --wiki-navigation-selected-background-image: none;
* --wiki-navigation-selected-border-width: calc( (1 - var(--wiki-is-navigation-inside-content))*var(--wiki-content-border-width) + var(--wiki-is-navigation-inside-content) * 1px );
* --wiki-navigation-selected-border-bottom-background: none;
* --wiki-navigation-tab-spacing: 0.25em;
* --wiki-navigation-tab-padding-top: 0.5em;
* --wiki-navigation-tab-padding-bottom: 0.5em;
*/
--wiki-navigation-tab-spacing: -1px; /* width of the space between tabs, can be a negative number, in which case adjacent tabs will overlap */
--wiki-navigation-tab-padding-top: 1.25em;
--wiki-navigation-tab-padding-x: 0.75em;
--wiki-navigation-tab-padding-bottom: 4px;
--wiki-navigation-selected-border-width: 0px; /* border width of selected tabs */
--wiki-navigation-border-width: var(--wiki-navigation-selected-border-width); /* border width of normal tabs */
--wiki-navigation-border-image: none;
--wiki-navigation-selected-border-image: var(--wiki-navigation-border-image);
--wiki-navigation-background-image: linear-gradient(to bottom,transparent 0,var(--wiki-content-border-color) 100%), linear-gradient(to bottom,transparent 0,var(--wiki-content-border-color) 100%), linear-gradient(to top,var(--wiki-navigation-background-color) 0,var(--wiki-navigation-selected-background-color) 100%);
--wiki-navigation-background-repeat: no-repeat, no-repeat, repeat-x;
--wiki-navigation-background-position: left bottom, right bottom, left bottom;
--wiki-navigation-background-size: 1px 100%, 1px 100%, 100%;
--wiki-navigation-selected-background-image: linear-gradient(to bottom,transparent 0,var(--wiki-content-border-color) 100%), linear-gradient(to bottom,transparent 0,var(--wiki-content-border-color) 100%);
--wiki-navigation-selected-background-repeat: no-repeat, no-repeat;
--wiki-navigation-selected-background-position: left bottom, right bottom;
--wiki-navigation-selected-background-size: 1px 100%, 1px 100%;
--wiki-navigation-selected-border-bottom-background: linear-gradient(to right, var(--wiki-content-border-color) 0, var(--wiki-content-border-color) 1px, transparent 1px), linear-gradient(to left, var(--wiki-content-border-color) 0, var(--wiki-content-border-color) 1px, transparent 1px);
/* affects the dropdown menu under More */
--wiki-navigation-dropdown-text-color: var(--wiki-navigation-text-color);
--wiki-navigation-dropdown-text-color--hover: var(--wiki-navigation-dropdown-text-color);
--wiki-navigation-dropdown-font-size: var(--wiki-navigation-font-size); /* please use em or rem for this */
--wiki-navigation-dropdown-border-width: 1px;
--wiki-navigation-dropdown-border-radius: var(--wiki-navigation-border-radius);
--wiki-navigation-dropdown-padding: 0.25em; /* padding of the dropdown menu box */
--wiki-navigation-dropdown-item-padding: 0.625em; /* padding of each dropdown menu items */
--wiki-navigation-dropdown-item-background--hover: none; /* background of hover item */
--wiki-navigation-dropdown-border-image: none;
--wiki-navigation-dropdown-backdrop-filter: none;
--wiki-navigation-dropdown-box-shadow: none; /* box shadow */
/* styles of the footer */
--wiki-spacing-before-footer: 0px;
--wiki-footer-border-image: none;
/* padding on body element */
--wiki-top-spacing: calc(var(--wiki-is-top-logo)*var(--wiki-logo-margin) + (1 - var(--wiki-is-top-logo))*1em); /* extra spacing below wiki.gg netbar */
--wiki-left-spacing: 1em;
--wiki-right-spacing: 1em;
--wiki-bottom-spacing: 2em;
/* pading on content-element */
--wiki-content-top-spacing:1.25em;
--wiki-content-left-spacing:1.5em;
--wiki-content-right-spacing:1.5em;
--wiki-content-bottom-spacing:1.5em;
/* end design variables */
}
/*----------------------------------------
***** END ADVANCED DESIGN VARIABLES ******
*****************************************/
/*******************************
**** START SHARED VARIABLES ****
**** tl;dr: don't edit this ****
********************************/
/*
These variables are rarely touched, usually inherit other variables, and are shared on all themes.
In 99% of cases none of these are ever edited, and you should only be doing so if you have a very clear vision,
understand what you are doing, and *know* that what you are trying to do is not accomplished by changing
another variable in the above sections.
Since these are by default shared across all themes, if you support multiple themes you'll probably want to
separate the variables you want to modify here into .view-x blocks like above. If you don't understand
what that means or how to do that then you probably shouldn't be modifying this section.
*/
:root {
--wiki-content-border-bottom-width: var(--wiki-content-border-width);
--wiki-content-border-bottom-style: var(--wiki-content-border-style);
--wiki-content-border-bottom-color: var(--wiki-content-border-color);
--wiki-content-text-mix-color: color-mix(in srgb, var(--wiki-content-background-color), var(--wiki-content-text-color) 62%);
--wiki-content-text-mix-color-95: color-mix(in srgb, var(--wiki-content-background-color) 95%, var(--wiki-content-text-color));
--wiki-content-text-color--hover: var(--wiki-content-text-color);
/* heading */
--wiki-content-heading-border-bottom-width: 1px;
--wiki-content-heading-border-style: solid;
--wiki-content-heading-font-weight: normal;
--wiki-content-heading-font-style: normal;
--wiki-content-heading-text-transform: none;
--wiki-content-heading-line-height: normal;
--wiki-content-heading-text-shadow: none;
/* first heading (h1) */
--wiki-content-firstheading-border-bottom-width: var(--wiki-content-heading-border-bottom-width);
--wiki-content-firstheading-border-style: var(--wiki-content-heading-border-style);
--wiki-content-firstheading-border-color: var(--wiki-content-heading-border-color);
--wiki-content-firstheading-font-weight: var(--wiki-content-heading-font-weight);
--wiki-content-firstheading-font-style: var(--wiki-content-heading-font-style);
--wiki-content-firstheading-text-transform: var(--wiki-content-heading-text-transform);
--wiki-content-firstheading-line-height: var(--wiki-content-heading-line-height);
--wiki-content-firstheading-color: var(--wiki-content-heading-color);
--wiki-content-firstheading-text-shadow: none;
/* sub-heading (h3, h4, h5, h6) */
--wiki-content-subheading-border-bottom-width: 0px;
--wiki-content-subheading-border-style: var(--wiki-content-heading-border-style);
--wiki-content-subheading-border-color: var(--wiki-content-heading-border-color);
--wiki-content-subheading-font-family: var(--wiki-body-font-family);
--wiki-content-subheading-font-weight: bold;
--wiki-content-subheading-font-style: normal;
--wiki-content-subheading-text-transform: none;
--wiki-content-subheading-line-height: var(--wiki-content-heading-line-height);
--wiki-content-subheading-color: var(--wiki-content-heading-color);
--wiki-content-subheading-text-shadow: none;
/* heading size */
--wiki-content-firstheading-font-size: 1.8em;
--wiki-content-heading-h2-font-size: 1.5em;
--wiki-content-heading-h3-font-size: 1.2em;
--wiki-content-heading-h4-font-size: 114%;
--wiki-content-heading-h5-font-size: 108%;
--wiki-content-heading-h6-font-size: 100%;
--wiki-content-toc-background: var(--wiki-content-background-color--secondary);
--wiki-content-toc-border-width: 1px;
--wiki-content-toc-border-style: solid;
--wiki-content-toc-border-color: var(--wiki-content-border-color);
--wiki-content-toc-border-radius: 0px;
--wiki-content-toc-border-image: none;
--wiki-content-toc-box-shadow: 0 0.1em 0.2em #000000;
--wiki-content-catlinks-background: var(--wiki-content-background-color--secondary);
--wiki-content-catlinks-border-width: 1px;
--wiki-content-catlinks-border-style: solid;
--wiki-content-catlinks-border-color: var(--wiki-content-border-color);
--wiki-content-catlinks-border-radius: 0px;
--wiki-content-catlinks-border-image: none;
--wiki-content-catlinks-box-shadow: none;
--wiki-content-filetoc-background: var(--wiki-content-background-color--secondary);
--wiki-content-filetoc-border-width: 1px;
--wiki-content-filetoc-border-style: solid;
--wiki-content-filetoc-border-color: var(--wiki-content-border-color);
--wiki-content-filetoc-border-radius: 0px;
--wiki-content-filetoc-border-image: none;
--wiki-content-filetoc-box-shadow: none;
--wiki-logo-offset-x: 0px;
--wiki-logo-offset-y: 0px;
--wiki-sidebar-padding: 0px;
--wiki-sidebar-background-color: var(--wiki-content-background-color);
--wiki-sidebar-background-opacity: var(--wiki-content-background-opacity);
--wiki-sidebar-background-image: none;
--wiki-sidebar-background-position: center;
--wiki-sidebar-background-repeat: repeat;
--wiki-sidebar-background-size: auto;
--wiki-sidebar-box-shadow: none;
--wiki-sidebar-filter: none;
--wiki-sidebar-backdrop-filter: var(--wiki-content-backdrop-filter);
--wiki-sidebar-border-color: var(--wiki-content-border-color);
--wiki-sidebar-border-style: solid;
--wiki-sidebar-border-image: none;
--wiki-sidebar-link-color: var(--wiki-content-link-color);
--wiki-sidebar-link-color--hover: var(--wiki-content-link-color--hover);
--wiki-sidebar-heading-color: var(--wiki-content-heading-color);
--wiki-sidebar-heading-font-weight: normal;
--wiki-sidebar-heading-font-style: normal;
--wiki-sidebar-heading-text-transform: none;
--wiki-sidebar-heading-line-height: normal;
--wiki-sidebar-heading-padding: 0.5rem 0.25rem 0.5rem 0.5rem;
--wiki-sidebar-heading-margin: 0px 0px -0.5rem 0px;
--wiki-sidebar-heading-background: none;
--wiki-sidebar-heading-border-image: none;
--wiki-sidebar-heading-text-shadow: none;
--wiki-sidebar-list-background: none;
--wiki-sidebar-list-border-image: none;
--wiki-sidebar-list-margin: 0px;
--wiki-sidebar-list-item-background: none;
--wiki-sidebar-list-item-border-image: none;
--wiki-sidebar-list-item-background--hover: none;
--wiki-sidebar-list-item-border-image--hover: none;
--wiki-sidebar-list-item-spacing: 0px;
--wiki-sidebar-icon-to-link-filter: var(--wiki-icon-to-link-filter);
--wiki-sidebar-offset: 0px; /* Vertical offset */
--wiki-sidebar-box-padding: 0px;
--wiki-sidebar-box-background: none;
--wiki-sidebar-box-border: 0px;
--wiki-sidebar-box-border-radius: 0px;
--wiki-sidebar-box-border-image: none;
--wiki-accent-color--hover: color-mix(in srgb, var(--wiki-accent-color) 90%, var(--wiki-accent-label-color));
--wiki-footer-border-width: var(--wiki-content-border-width);
--wiki-footer-border-style: var(--wiki-content-border-style);
--wiki-footer-border-color: var(--wiki-content-border-color);
--wiki-footer-background-color: var(--wiki-content-background-color);
--wiki-footer-background-opacity: var(--wiki-content-background-opacity);
--wiki-footer-backdrop-filter: var(--wiki-content-backdrop-filter);
--wiki-footer-text-color: var(--wiki-content-text-color);
--wiki-footer-link-color: var(--wiki-content-link-color);
--wiki-footer-link-color--hover: var(--wiki-content-link-color--hover);
--wiki-footer-border-radius: var(--wiki-content-border-radius);
--wiki-navigation-background-opacity: var(--wiki-navigation-selected-background-opacity);
--wiki-navigation-background-color--hover: var(--wiki-navigation-background-color);
--wiki-navigation-background-opacity--hover: var(--wiki-navigation-background-opacity);
--wiki-navigation-background-image--hover: var(--wiki-navigation-background-image);
--wiki-navigation-background-position--hover: var(--wiki-navigation-background-position);
--wiki-navigation-background-repeat--hover: var(--wiki-navigation-background-repeat);
--wiki-navigation-background-size--hover: var(--wiki-navigation-background-size);
--wiki-navigation-text-color--hover: var(--wiki-content-link-color--hover);
--wiki-navigation-transform--hover: none;
--wiki-navigation-selected-border-style: solid;
--wiki-navigation-selected-background-opacity: var(--wiki-content-background-opacity);
--wiki-navigation-border-style: solid;
--wiki-navigation-border-color--hover: var(--wiki-navigation-border-color);
--wiki-navigation-border-image--hover: var(--wiki-navigation-border-image);
--wiki-navigation-border-bottom-color: var(--wiki-navigation-selected-border-color);
--wiki-navigation-border-bottom-color--hover: var(--wiki-navigation-border-color--hover); /* change this color to transparent to make it behave like a selected tab */
--wiki-navigation-border-bottom-style: var(--wiki-navigation-selected-border-style);
--wiki-navigation-border-bottom-width: calc(var(--wiki-is-navigation-inside-content, 0) * var(--wiki-navigation-selected-border-width, 1px) + (1 - var(--wiki-is-navigation-inside-content, 0)) * var(--wiki-content-border-width, 1px));
--wiki-navigation-icon-size: 1em;
--wiki-navigation-tab-padding-x--icon: var(--wiki-navigation-tab-padding-x);
--wiki-navigation-bottom-spacing: 0px; /* If you change this to greater than 0px, you should usually change the value of --wiki-navigation-selected-border-bottom-background to var(--wiki-navigation-border-bottom-color) */
--wiki-navigation-dropdown-background-color: var(--wiki-content-background-color);
--wiki-navigation-dropdown-background-opacity: var(--wiki-content-background-opacity);
--wiki-navigation-dropdown-border-color: var(--wiki-navigation-border-color);
--wiki-navigation-dropdown-offset: 0px; /* vertical offset */
--wiki-navigation-search-background-color: var(--wiki-content-background-color--secondary);
--wiki-navigation-search-background-image: none;
--wiki-navigation-search-background-position: 0;
--wiki-navigation-search-background-size: auto;
--wiki-navigation-search-background-repeat: repeat;
--wiki-navigation-search-backdrop-filter: none;
--wiki-navigation-search-border-color: var(--wiki-navigation-border-color);
--wiki-navigation-search-border-color--hover: var(--wiki-accent-color);
--wiki-navigation-search-border-style: solid;
--wiki-navigation-search-border-width: 1px;
--wiki-navigation-search-border-radius: 2px;
--wiki-navigation-search-border-image: none;
--wiki-navigation-search-border-image--hover: var(--wiki-navigation-search-border-image);
--wiki-navigation-search-box-shadow: none;
--wiki-navigation-search-box-shadow--hover: var(--wiki-navigation-search-box-shadow);
--wiki-navigation-search-text-color: var(--wiki-content-text-color);
--wiki-navigation-search-font-size: var(--wiki-navigation-font-size);
--wiki-navigation-search-height: 2em;
--wiki-navigation-search-button-color: currentColor;
--wiki-navigation-search-button-color--hover: var(--wiki-navigation-search-button-color);
--wiki-navigation-search-button-color-opacity: 80%;
--wiki-navigation-search-button-color-opacity--hover: 95%;
--wiki-navigation-search-bottom-spacing: 3px;
--wiki-navigation-search-highlight-background-color: color-mix(in srgb, var(--wiki-accent-color) 5%, transparent);
--wiki-navigation-gap-between-left-and-right: calc(max(0px, var(--wiki-navigation-tab-spacing))); /* minimum width between #left-navigation and #right-navigation before tabs start to collapse */
}
/*** mobile adjustments ***/
@media screen and (max-width: 720px) {
body.has-vector-mobile-menu{
--wiki-sidebar-offset: 0px; /* Vertical offset */
--wiki-sidebar-margin: 0px;
--wiki-sidebar-heading-background: none;
--wiki-sidebar-heading-border-image: none;
--wiki-sidebar-heading-margin: 0px 0px -0.5em 0px;
--wiki-sidebar-list-margin: 0px;
--wiki-sidebar-list-background: none;
--wiki-sidebar-list-border-image: none;
--wiki-sidebar-list-item-background: none;
--wiki-sidebar-list-item-border-image: none;
--wiki-sidebar-list-item-background--hover: none;
--wiki-sidebar-list-item-border-image--hover: none;
--wiki-sidebar-list-item-spacing: 0px;
--wiki-sidebar-line-height: 1.125;
--wiki-sidebar-background-opacity: 100%;
--wiki-navigation-search-border-width: 1px;
--wiki-logo-offset-x: 0px;
--wiki-logo-offset-y: 0px;
}
}
/*****************************
**** END SHARED VARIABLES ****
******************************/
/******************************************************************************************
********************************* End user-edit variables *********************************
******************************************************************************************/
/******************************
* Fallback for older browsers *
* DONT EDIT THIS *
*******************************/
@supports not (color:color-mix(in srgb, #000, transparent)) {
.view-dark,
.view-light,
:root {
--wiki-content-text-mix-color: var(--wiki-content-text-color);
--wiki-content-text-mix-color-95: var(--wiki-content-background-color);
--wiki-content-background-color--secondary: var(--wiki-content-dynamic-color--secondary--inverted);
--wiki-content-border-color--secondary: var(--wiki-content-border-color);
--wiki-content-border-color--accent: var(--wiki-accent-color);
--wiki-accent-color--hover: var(--wiki-accent-color);
--wiki-navigation-search-highlight-background-color: transparent;
}
}
/*****************************
* End older browser fallback *
******************************/
/*****************************
* PortableInfoboxes *
******************************/
:root {
--pi-background: var(--wiki-content-background-color);
--pi-secondary-background: var(--wiki-accent-color);
--pi-secondary-background-label: var(--wiki-accent-label-color);
--pi-border-color: color-mix(in srgb, var(--pi-secondary-background) 50%, transparent);
}
.portable-infobox .pi-title,
.portable-infobox .pi-header {
text-align: center;
font-size: 1.5em;
background: color-mix(in srgb, var(--pi-secondary-background) 75%, transparent);
color: var(--pi-secondary-background-label);
}
.portable-infobox .pi-data,
.portable-infobox .pi-group {
background: var(--wiki-content-background-color--secondary);
}
.portable-infobox .pi-image {
padding: 8px;
}
.pi-image-thumbnail {
max-width: 100%;
}
.pi-caption {
color: var(--wiki-content-text-mix-color);
}
.pi-section-navigation .pi-section-tab.pi-section-active,
.pi-section-navigation .pi-section-tab.current,
.pi-media-collection .pi-tab-link.current {
background: var(--pi-secondary-background);
color: var(--pi-secondary-background-label);
}
.pi-collapse > .pi-item:first-child {
cursor: pointer;
}
/* overqualify these to overwrite normal content heading styles */
.mw-body .portable-infobox h2,
.mw-body .portable-infobox h3 {
border-bottom: 0;
font-family: inherit;
font-weight: 700;
margin: 0;
}
/*****************************
* End PortableInfoboxes *
******************************/
/*******************
* Main page layout *
********************/
#mp-container {
display: grid;
gap: 10px;
clear:both; /* for .mw-indicators combined with NOTITLE */
}
@media screen and (max-width: 990px) {
/* for mobile screens */
#mp-container {
grid-template-areas:var(--main-page-layout--mobile);
grid-template-columns:var(--main-page-layout-columns--mobile, 100%);
}
.mp-box.mp-hide-on-mobile {
display: none;
}
}
@media screen and (min-width: 990px) and (max-width: 1350px) {
/* for narrow screens, between 990px and 1350px */
#mp-container {
grid-template-areas:var(--main-page-layout--tablet);
grid-template-columns:var(--main-page-layout-columns--tablet, 1fr 1fr);
}
.mp-box.mp-hide-on-tablet {
display: none;
}
}
@media screen and (min-width: 1350px) {
/* for all other screens, 1350px and wider */
#mp-container {
grid-template-areas:var(--main-page-layout--desktop);
grid-template-columns:var(--main-page-layout-columns--desktop, 2fr 1fr 2fr);
}
.mp-box.mp-hide-on-desktop {
display: none;
}
}
.mp-box {
position: relative;
display: flex;
flex-flow: column nowrap;
width: 100%;
box-sizing: border-box;
background: color-mix(in srgb, var(--wiki-content-background-color--secondary) 25%, transparent);
border: 1px solid var(--wiki-content-border-color);
padding: 0px;
}
.mp-body {
height: 100%;
display: flex;
padding: 0.5em;
flex-flow: column nowrap;
}
.mp-box.centered-content .mp-body {
height: 100%;
display: flex;
flex-flow: column nowrap;
justify-content: space-evenly;
}
.mp-box.has-floating-image {
display: block;
}
.mp-box.has-floating-image .mp-body {
height: unset;
display: block;
}
.mp-box.header-only {
border-bottom-width:0px;
}
.mp-box.header-only .mp-body {
display:none;
}
.mp-box.missing .mw-inputbox-input {
/* max-width doesn't override the input element's 'size' property, but that property does work as a max-width itself, so we can set width:100% for the same effect */
width:100% !important;
}
/* overqualified to override normal heading styles */
.mw-body .mp-box h2 {
text-align: center;
font-weight: bold;
font-family: var(--wiki-content-heading-font-family);
overflow: initial;
border-bottom: 1px solid var(--wiki-content-border-color);
font-size: 150%;
margin: 0;
padding: 5px 0;
color: var(--wiki-content-heading-color);
}
#mp-box-welcome {
text-align: center;
position: relative;
overflow: hidden;
}
#mp-box-welcome h2 {
font-size: 200%;
}
#mp-welcome {
display: flex;
flex-flow: column nowrap;
position: relative;
height: 100%;
z-index: 2;
box-sizing: border-box;
}
#mp-welcome .welcome-subtitle {
height: 100%;
background: color-mix(in srgb, var(--wiki-content-dynamic-color--inverted) 85%, transparent);
padding: 0.5em;
}
#mp-banner {
position: absolute;
width: 100%;
height: 100%;
filter: blur(5px);
z-index: -1;
background: url(/images/e/e0/MP_banner.jpg);
background-size: cover;
background-repeat: no-repeat;
background-position: top center;
}
.view-dark #mp-banner {
filter: blur(5px) brightness(50%);
}
.view-light #mp-banner {
filter: blur(5px) contrast(50%);
}
/* [[Template:MP_link]] */
.mp-links {
--gap: 10px;
}
.mp-links > ul {
display: flex;
flex-flow: row wrap;
justify-content: space-evenly;
margin: 2px;
gap: var(--gap);
}
.mp-links > ul > li {
display: flex;
flex-flow: column nowrap;
align-items: stretch;
text-align: center;
box-sizing: border-box;
flex: max(calc(50% - var(--gap)), 5em) 1 1;
outline: 1px solid var(--wiki-content-link-color);
transition: 0.1s ease-in;
}
.mp-links > ul > li:hover {
background-color: color-mix(in srgb, var(--wiki-content-link-color) 20%, transparent);
}
.mp-links.columns-1 > ul > li {flex: max(calc(100% - var(--gap)), 5em) 1 1;}
.mp-links.columns-2 > ul > li {flex: max(calc(50% - var(--gap)), 5em) 1 1;}
.mp-links.columns-3 > ul > li {flex: max(calc((100% / 3) - var(--gap)), 5em) 1 1;}
.mp-links.columns-4 > ul > li {flex: max(calc(25% - var(--gap)), 5em) 1 1;}
.mp-links.columns-5 > ul > li {flex: max(calc(20% - var(--gap)), 5em) 1 1;}
.mp-links.columns-6 > ul > li {flex: max(calc((100% / 6) - var(--gap)), 5em) 1 1;}
.mp-links.columns-7 > ul > li {flex: max(calc((100% / 7) - var(--gap)), 5em) 1 1;}
.mp-links.columns-8 > ul > li {flex: max(calc((100% / 8) - var(--gap)), 5em) 1 1;}
.mp-links.columns-max > ul > li {flex: max(calc(0% - var(--gap)), 5em) 1 1;}
.mp-links > ul > li:hover a {
text-decoration: underline;
}
.mp-links > ul > li > a {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
flex: 1 1 auto;
box-sizing: border-box;
padding: 5px;
}
.mp-links > ul > li > a:first-child {
height: 100%;
}
.mp-links > ul > li > a:last-child:not(:first-child) {
height: unset;
}
.mp-links.stretch,
.mp-links.stretch > ul {
height: 100%;
}
.mp-links.side-image li {
flex-flow: row nowrap;
}
.mp-links.plain > ul > li {
outline-color: transparent;
}
/***********************
* End main page layout *
************************/
/*********************************************************************************************************************
* Semantically-correct horizontal lists (for Module:Navbox, and they're more machine-readable than {{*}}-formatting) *
**********************************************************************************************************************/
.hlist dl,
.hlist ol,
.hlist ul {
margin: 0;
padding: 0;
}
/* Display list items inline */
.hlist dd,
.hlist dt,
.hlist li {
/*
* don't trust the note that says margin doesn't work with inline
* removing margin: 0 makes dds have margins again
* We also want to reset margin-right in Minerva
*/
margin: 0;
display: inline;
}
/* Display requested top-level lists inline */
.hlist.inline,
.hlist.inline dl,
.hlist.inline ol,
.hlist.inline ul,
/* Display nested lists inline */
.hlist dl dl,
.hlist dl ol,
.hlist dl ul,
.hlist ol dl,
.hlist ol ol,
.hlist ol ul,
.hlist ul dl,
.hlist ul ol,
.hlist ul ul {
display: inline;
}
/* Hide empty list items */
.hlist .mw-empty-li {
display: none;
}
/* TODO: :not() can maybe be used here to remove the later rule. naive test
* seems to work. more testing needed. like so: */
.hlist dt:not(:last-child)::after {
content: ":\20";
}
.hlist dd:not(:last-child)::after,
.hlist li:not(:last-child)::after {
/* "space, Middle Dot, space"
We use unicode numbers instead of the raw characters due to a Firefox encoding bug on unicode characters.
The space is also encoded because raw spaces combined with a unicode number strips the spaces under some conditions such as single-line lists */
/* content: "\20\00B7\20"; font-weight: bold; */
/* "space • space"
There may (and likely) be an extra whitespace between <li>s,
therefore we have to use a space character as last character of this sequence.
By this way, the last space and the next whitespace will collapse as a single space,
to make the whitespace on both sides of the middle dot the same width.
*/
content: "\20\A0\2022\A0\20";
font-weight: inherit;
}
/* Add parentheses around nested lists */
.hlist dd ol::before,
.hlist dd ul::before,
.hlist dd dl::before,
.hlist dt ol::before,
.hlist dt ul::before,
.hlist dt dl::before,
.hlist li ol::before,
.hlist li ul::before,
.hlist li dl::before {
content: "\20(";
font-weight: inherit;
}
.hlist dd ol::after,
.hlist dd ul::after,
.hlist dd dl::after,
.hlist dt ol::after,
.hlist dt ul::after,
.hlist dt dl::after,
.hlist li ol::after,
.hlist li ul::after,
.hlist li dl::after {
content: ")";
font-weight: inherit;
}
/* Put ordinals in front of ordered list items */
.hlist ol {
counter-reset: listitem;
}
.hlist ol > li {
counter-increment: listitem;
}
.hlist ol > li::before {
content: " " counter(listitem) ".\20";
}
/* Progressive enhancement:
* try to make the dot always follow the list item in same line
*/
.hlist :is(li,dt,dd):not(:has(:is(li,dt,dd))) {
display: inline-block;
}
/********************************************
* End semantically-correct horizontal lists *
*********************************************/
/*** Miscellaneous ***/
.responsive-image {
max-width: 100%;
height: auto;
box-sizing: border-box;
}
.view-dark .invert-on-dark,
.view-light .invert-on-light {
filter: invert(100%);
}
.pixelated {
image-rendering: pixelated;
}
@media screen and (min-width: 720px) {
.mobileonly {
display: none;
}
}
@media screen and (max-width: 720px) {
.nomobile {
display: none;
}
}
/*** Utility classes for standard MW galleries ***/
/* it's important that spaced comes before centered in the sheet */
.gallery.gallery.gallery.spaced { /* this selector looks ridiculous but is actually part of stock Vector and therefore a necessary override */
display: flex;
flex-flow: row wrap;
justify-content: space-evenly;
margin-left: unset;
}
.gallery.centered {
text-align: center;
}
/**************************
* Start Modular Templates *
**************************/
/********* [[Template:Ambox]] *********/
.ambox {
--ambox-color: var(--wiki-accent-color);
border: 1px solid var(--wiki-content-border-color);
border-left: 10px solid var(--ambox-color);
border-radius: 2px;
display: flex;
align-items: center;
gap: .6em;
margin: 1em 0;
padding: 3px .6em;
background-color: var(--wiki-content-background-color--secondary);
box-shadow: 2px 2px 5px 0px #0002;
}
@media (min-width: 720px) {
.ambox {
margin-inline: 10%;
}
}
.ambox.tiny {
padding: .04rem .5em;
margin-inline: 0;
width: fit-content;
}
.ambox + .ambox {
margin-top: -.6em;
}
.ambox-content {
flex: 1;
}
.ambox-content p {
margin: .15em 0;
}
.ambox-title {
font-weight: bold;
}
/********* [[Template:Hatnote]] *********/
.hatnote {
padding: 1px 0 1px 1.6em;
margin-bottom: 0.5em;
font-style: italic;
border-top: 1px solid var(--wiki-content-border-color--secondary);
border-bottom: 1px solid var(--wiki-content-border-color--secondary);
}
.hatnote.icon {
padding-left: 0;
}
/********* [[Template:Spoiler]] *********/
.spoiler-content {
background-color: color-mix(in srgb, var(--wiki-content-dynamic-color) 50%, transparent);
transition: all 0.3s;
cursor: pointer;
overflow: auto;
}
@supports not (color:color-mix(in srgb, #000, transparent)) {
.spoiler-content {
background-color: var(--wiki-content-dynamic-color--secondary);
}
}
.spoiler-content > * {
pointer-events: none;
opacity: 0;
transition: all 0.3s;
}
.spoiler-content.show {
background-color: transparent;
}
.spoiler-content.show > * {
pointer-events: unset;
opacity: 1;
}
/********* [[Template:Link icon]] *********/
.link-icon {
--link-icon-line-height: 1.5em;
--link-icon-size: 1.5em;
display: inline-flex;
align-items: center;
height: var(--link-icon-line-height);
vertical-align: bottom;
}
.link-icon .regular {
align-self: center;
}
.link-icon .regular a {
display: flex;
}
.link-icon .regular img {
height: var(--link-icon-size);
max-width: var(--link-icon-size);
}
.link-icon .fallback {
outline: 1px solid var(--wiki-content-text-color);
border-radius: 50%;
text-align: center;
width: var(--link-icon-size);
line-height: var(--link-icon-size);
}
.link-icon.notext,
.link-icon.notext .fallback {
display: inline-block;
}
/********* [[Template:Quote]] *********/
.quote {
background: var(--wiki-content-background-color--secondary);
border-radius: 5px;
border: 2px solid var(--wiki-content-border-color);
margin: .5em 0;
padding: .5em;
overflow-y: hidden;
}
.quote .block {
display: block;
}
.quote .title {
font-size: large;
font-weight: bold;
}
.quote .content {
font-style: italic;
}
.quote .author {
font-weight: bold;
text-align: end;
}
.quote .marks-wrapper {
display: flex;
gap: 5px;
}
.quote .marks-wrapper::before,
.quote .marks-wrapper::after {
font-size: 100px;
line-height: 0px;
}
.quote .marks-wrapper::before {
content: "\201C";
margin-top: 40px;
}
.quote .marks-wrapper::after {
content: "\201D";
align-self: end;
margin-bottom: -10px;
}
.client-js .mw-charinsert-item {
display: none;
}
/************************
* End Modular Templates *
*************************/
/*****************************
* Used by [[Template:Color]] *
******************************/
.color__splotch {
display: inline-block;
height: 1em;
width: 1em;
box-sizing: border-box;
vertical-align: text-top;
border-radius: 50%;
border: 1px solid var(--wiki-content-text-color);
}
/*********************
* End Template:Color *
**********************/
/*********************************
* Used by [[Template:TOC limit]] *
**********************************/
.toclimit-2 .toclevel-1 ul,
.toclimit-3 .toclevel-2 ul,
.toclimit-4 .toclevel-3 ul,
.toclimit-5 .toclevel-4 ul,
.toclimit-6 .toclevel-5 ul,
.toclimit-7 .toclevel-6 ul {
display: none;
}
/*************************
* End Template:TOC limit *
**************************/
/*********************************
* Used by [[Template:TOC right]] *
**********************************/
@media all and (min-width: 720px) {
.tocright {
float: right;
clear: right;
margin: 0 0 0.5em 1em;
}
}
/*************************
* End Template:TOC right *
**************************/
a351e9e6ffdf90c855817708baff2fddd49f0ccb
MediaWiki:Sidebar
8
289
316
2025-11-02T20:10:57Z
MasterOfDisillusionment
431405
Created page with "* navigation ** mainpage|mainpage-description ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * wiki.gg ** support:|sidebar-support-wiki ** Wikigg-ticket-link|sidebar-submit-ticket ** wikigg-socialmedia-joinlink|wikigg-socialmedia-jointext-sidebar"
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* wiki.gg
** support:|sidebar-support-wiki
** Wikigg-ticket-link|sidebar-submit-ticket
** wikigg-socialmedia-joinlink|wikigg-socialmedia-jointext-sidebar
736383dfe34c8d75c14f79851906a11b19b812aa
319
316
2025-11-02T20:51:40Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* Important Pages
** Submission Rules|Rules & FAQ
* wiki.gg
** support:|sidebar-support-wiki
** Wikigg-ticket-link|sidebar-submit-ticket
** wikigg-socialmedia-joinlink|wikigg-socialmedia-jointext-sidebar
bf57130bed7bb650435a76ef3f6854a7f2016e7a
320
319
2025-11-02T20:53:48Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* Important Pages
** Submission Rules|Rules & FAQ
** Category:Game Information|Game Information
* wiki.gg
** support:|sidebar-support-wiki
** Wikigg-ticket-link|sidebar-submit-ticket
** wikigg-socialmedia-joinlink|wikigg-socialmedia-jointext-sidebar
bed0d69f6640f27fa5dbf77ab58d7337be2c66ee
325
320
2025-11-02T21:39:54Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* Important Pages
** Submission Rules|Rules & FAQ
** Category:Game Information|Game Information
** Category:Mods And Assets|Mods & Assets
** Category:Tutorials And Guides|Tutorials & Guides
** Category:Boom Tropes|Boom Tropes
* wiki.gg
** support:|sidebar-support-wiki
** Wikigg-ticket-link|sidebar-submit-ticket
** wikigg-socialmedia-joinlink|wikigg-socialmedia-jointext-sidebar
e3a7edcf781a1e85fb2f509b03f96eba54e8c6e4
329
325
2025-11-02T21:51:03Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* Important Pages
** FAQ|FAQ
** Category:Game Information|Game Information
** Category:Mods And Assets|Mods & Assets
** Category:Tutorials And Guides|Tutorials & Guides
** Category:Boom Tropes|Boom Tropes
* wiki.gg
** support:|sidebar-support-wiki
** Wikigg-ticket-link|sidebar-submit-ticket
** wikigg-socialmedia-joinlink|wikigg-socialmedia-jointext-sidebar
30e9c431038db2a425cfe8feef07badf468ffbd5
336
329
2025-11-03T15:26:49Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* Important Pages
** FAQ|FAQ
** Category:Game Information|Game Information
** Category:Mods And Assets|Mods & Assets
** Category:Tutorials And Guides|Tutorials & Guides
** Category:Boom Tropes|Boom Tropes
** All Categories|Categories
* wiki.gg
** support:|sidebar-support-wiki
** Wikigg-ticket-link|sidebar-submit-ticket
** wikigg-socialmedia-joinlink|wikigg-socialmedia-jointext-sidebar
d016c0dd7b95ebdb0dbe1830899d3513258582b1
337
336
2025-11-03T15:27:33Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* Important Pages
** FAQ|FAQ
** Category:Game Information|Game Information
** Category:Mods And Assets|Mods & Assets
** Category:Tutorials And Guides|Tutorials & Guides
** Category:Boom Tropes|Boom Tropes
** Categories|Categories
* wiki.gg
** support:|sidebar-support-wiki
** Wikigg-ticket-link|sidebar-submit-ticket
** wikigg-socialmedia-joinlink|wikigg-socialmedia-jointext-sidebar
24cec8d370a4c7c949c7cbc2b27b06ca2c472abd
338
337
2025-11-03T15:29:18Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* Important Pages
** FAQ|FAQ
** Category:Game Information|Game Information
** Category:Mods And Assets|Mods & Assets
** Category:Tutorials And Guides|Tutorials & Guides
** Category:Boom Tropes|Boom Tropes
* wiki.gg
** support:|sidebar-support-wiki
** Wikigg-ticket-link|sidebar-submit-ticket
** wikigg-socialmedia-joinlink|wikigg-socialmedia-jointext-sidebar
30e9c431038db2a425cfe8feef07badf468ffbd5
Category:Game Information
14
290
317
2025-11-02T20:31:54Z
MasterOfDisillusionment
431405
Created page with "Relevant Doom engine games are listed on this page. = Classic = The original classics from the 90s are listed here. == [[Doom]] == Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis, id elementum eros. == [[Heretic]] == Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis..."
wikitext
text/x-wiki
Relevant Doom engine games are listed on this page.
= Classic =
The original classics from the 90s are listed here.
== [[Doom]] ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis, id elementum eros.
== [[Heretic]] ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis, id elementum eros.
= Modern =
Neo-boomer shooters created using a modified version of the Doom engine (e.g. UZDoom) should be listed here.
== [[Malefact]] ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis, id elementum eros.
2c6d3789245525c17291f94220cf84a10cb4b24b
330
317
2025-11-02T22:35:10Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Relevant Doom engine games are listed on this page.
= Classic =
The original classics from the 90s are listed here.
== [[Doom]] ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis, id elementum eros.
== [[Heretic]] ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis, id elementum eros.
== [[Strife ]] ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis, id elementum eros.
= Modern =
Neo-boomer shooters created using a modified version of the Doom engine (e.g. UZDoom) should be listed here.
== [[Malefact]] ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis, id elementum eros.
cf00457c1cc2f98735ff4af68b39c59f5f54bc70
331
330
2025-11-02T22:36:21Z
MasterOfDisillusionment
431405
Protected "[[Category:Game Information]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite))
wikitext
text/x-wiki
Relevant Doom engine games are listed on this page.
= Classic =
The original classics from the 90s are listed here.
== [[Doom]] ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis, id elementum eros.
== [[Heretic]] ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis, id elementum eros.
== [[Strife ]] ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis, id elementum eros.
= Modern =
Neo-boomer shooters created using a modified version of the Doom engine (e.g. UZDoom) should be listed here.
== [[Malefact]] ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis, id elementum eros.
cf00457c1cc2f98735ff4af68b39c59f5f54bc70
333
331
2025-11-03T00:01:25Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Relevant Doom engine games are listed on this page.
= Classic =
The original classics from the 90s are listed here.
== [[Doom]] ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis, id elementum eros.
== [[Heretic]] ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis, id elementum eros.
= Modern =
Neo-boomer shooters created using a modified version of the Doom engine (e.g. UZDoom) should be listed here.
== [[Malefact]] ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis, id elementum eros.
2c6d3789245525c17291f94220cf84a10cb4b24b
FAQ
0
291
318
2025-11-02T20:47:25Z
MasterOfDisillusionment
431405
Created page with "If you intend to contribute to the wiki, please read this page carefully first. = General = Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis, == Category 1 == Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor q..."
wikitext
text/x-wiki
If you intend to contribute to the wiki, please read this page carefully first.
= General =
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis,
== Category 1 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis,
== Category 2 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis,
e74561cf4c23c4a958ae6c7beccf8bc65ce078e0
327
318
2025-11-02T21:50:08Z
MasterOfDisillusionment
431405
MasterOfDisillusionment renamed page [[Submission Rules]] to [[FAQ]]
wikitext
text/x-wiki
If you intend to contribute to the wiki, please read this page carefully first.
= General =
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis,
== Category 1 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis,
== Category 2 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis,
e74561cf4c23c4a958ae6c7beccf8bc65ce078e0
Category:Mods And Assets
14
292
321
2025-11-02T21:00:07Z
MasterOfDisillusionment
431405
Created page with "Pages related to user created mods, TCs, and game assets belong here. = Mods = Mods modify the gameplay of a game and optionally contain new levels and or game assets. == Mod 1 == Lorem ipsum dolor sit amet, consectetur adipiscing elit. == Mod 2 == Lorem ipsum dolor sit amet, consectetur adipiscing elit. = Assets = Assets are used to expand the base game via addition graphics, sound, code, etc. == Assets 1 == Lorem ipsum dolor sit amet, consectetur adipiscing eli..."
wikitext
text/x-wiki
Pages related to user created mods, TCs, and game assets belong here.
= Mods =
Mods modify the gameplay of a game and optionally contain new levels and or game assets.
== Mod 1 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Mod 2 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= Assets =
Assets are used to expand the base game via addition graphics, sound, code, etc.
== Assets 1 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Assets 2 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
2eea1520de74af8e58f714a9be09a9925a0ffa26
Category:Tutorials And Guides
14
293
322
2025-11-02T21:23:05Z
MasterOfDisillusionment
431405
Created page with "If you're a newcomer to modding or mapping using the UZDoom engine, this page contains useful resources for getting started. = Category 1 = Lorem ipsum dolor sit amet, consectetur adipiscing elit. == Sub-Category 1 == Lorem ipsum dolor sit amet, consectetur adipiscing elit. == Sub-Category 2 == Lorem ipsum dolor sit amet, consectetur adipiscing elit."
wikitext
text/x-wiki
If you're a newcomer to modding or mapping using the UZDoom engine, this page contains useful resources for getting started.
= Category 1 =
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category 1 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category 2 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
3b0f65be69e131d5fd78f8f46f651cd1a4900e62
332
322
2025-11-02T22:50:38Z
MasterOfDisillusionment
431405
Protected "[[Category:Tutorials And Guides]]": Quality Control ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite))
wikitext
text/x-wiki
If you're a newcomer to modding or mapping using the UZDoom engine, this page contains useful resources for getting started.
= Category 1 =
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category 1 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category 2 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
3b0f65be69e131d5fd78f8f46f651cd1a4900e62
Category:Boom Tropes
14
294
323
2025-11-02T21:31:17Z
MasterOfDisillusionment
431405
Created page with "Boomshoot Tropes is an archive of recurring design elements, level setups, and architecture patterns found in classic FPS games, especially Doom, Quake, and their many fan-made mods. Besides being fun to browse, the tropes can also be a potentially useful source of inspiration for level designers since these tropes can be easily incorporated into their own designs. = Geometry = Lorem ipsum dolor sit amet, consectetur adipiscing elit. == Sub-Category == = Detailing =..."
wikitext
text/x-wiki
Boomshoot Tropes is an archive of recurring design elements, level setups, and architecture patterns found in classic FPS games, especially Doom, Quake, and their many fan-made mods. Besides being fun to browse, the tropes can also be a potentially useful source of inspiration for level designers since these tropes can be easily incorporated into their own designs.
= Geometry =
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category ==
= Detailing =
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category ==
= Encounter Design =
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category ==
7458e584679d2da37ee5fcfdbfbd1a5e9951af94
324
323
2025-11-02T21:31:55Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Boomshoot Tropes is an archive of recurring design elements, level setups, and architecture patterns found in classic FPS games, especially Doom, Quake, and their many fan-made mods. Besides being fun to browse, the tropes can also be a potentially useful source of inspiration for level designers since these tropes can be easily incorporated into their own designs.
= Geometry =
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= Detailing =
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= Encounter Design =
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
22d6f4ebb98ea6407f1f92c156b6e438ca7d7014
326
324
2025-11-02T21:46:21Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Boom Tropes is an archive of recurring design elements, level setups, and architecture patterns found in classic FPS games and their mods. Besides being fun to browse, the tropes can also be a potentially useful source of inspiration for level designers since these tropes can be easily incorporated into their own designs.
= Geometry =
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= Detailing =
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= Encounter Design =
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
3f63d2d6127ce80d4f6e3f72e66a7b523a18365a
Submission Rules
0
295
328
2025-11-02T21:50:08Z
MasterOfDisillusionment
431405
MasterOfDisillusionment renamed page [[Submission Rules]] to [[FAQ]]
wikitext
text/x-wiki
#REDIRECT [[FAQ]]
0b8804ea6bff6f1ef778cad0872760f69e5c3f8e
File:Icon GameInformation.png
6
296
334
2025-11-03T15:19:15Z
MasterOfDisillusionment
431405
Icon graphic for the Game Information page/category.
wikitext
text/x-wiki
== Summary ==
Icon graphic for the Game Information page/category.
== Licensing ==
{{License|permission}}
27f7acbc79cf17082067376c7ef3afd31bad3365
335
334
2025-11-03T15:19:53Z
MasterOfDisillusionment
431405
Protected "[[File:Icon GameInformation.png]]": Part of skin ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
== Summary ==
Icon graphic for the Game Information page/category.
== Licensing ==
{{License|permission}}
27f7acbc79cf17082067376c7ef3afd31bad3365
Hardcore Doom Wiki/pages
0
5
339
9
2025-11-03T15:32:42Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{Main page box/start
| title = Useful wiki pages
| class = centered-content
}}
<div class="mp-links columns-2">
* {{MP link| Game Information |image=Icon GameInformation.png |size=64px }}
* {{MP link| Mods & Assets |link=Special:Random }}
* {{MP link| Tutorials & Guides |link=Example character |image=Example_character_image.png |size=92px }}
* {{MP link| Boom Tropes |link=Template:Example character infobox |image=Example_character_image.png |size=92px }}
</div>
{{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line -->
0ce8243119ec5943770ecbea1b210493dac34181
346
339
2025-11-03T15:43:09Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{Main page box/start
| title = Useful wiki pages
| class = centered-content
}}
<div class="mp-links columns-2">
* {{MP link| Game Information |link=Category:Game Information |image=Icon GameInformation.png |size=64px }}
* {{MP link| Mods & Assets |link=Category:Mods And Assets |image=Icon ModsAndResources.png |size=64px }}
* {{MP link| Tutorials & Guides |link=Category:Tutorials And Guides |image=Icon Tutorials.png |size=64px }}
* {{MP link| Boom Tropes |link=Category:Boom Tropes |image=Icon BoomTropes.png |size=64px }}
</div>
{{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line -->
cdeff2fb4f145a5629d270b39f8f41e101d44234
File:Icon ModsAndResources.png
6
297
340
2025-11-03T15:38:26Z
MasterOfDisillusionment
431405
Icon graphic for the Mods and resources category.
wikitext
text/x-wiki
== Summary ==
Icon graphic for the Mods and resources category.
== Licensing ==
{{License|permission}}
43749fe04a242b90f4747306efc228fba397f117
341
340
2025-11-03T15:38:41Z
MasterOfDisillusionment
431405
Protected "[[File:Icon ModsAndResources.png]]": Part of skin ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
== Summary ==
Icon graphic for the Mods and resources category.
== Licensing ==
{{License|permission}}
43749fe04a242b90f4747306efc228fba397f117
File:Icon Tutorials.png
6
298
342
2025-11-03T15:40:08Z
MasterOfDisillusionment
431405
Icon graphic for the tutorials and guides category page.
wikitext
text/x-wiki
== Summary ==
Icon graphic for the tutorials and guides category page.
== Licensing ==
{{License|permission}}
22831d9438b6c38a6c69af409f003b8118938abe
343
342
2025-11-03T15:40:21Z
MasterOfDisillusionment
431405
Protected "[[File:Icon Tutorials.png]]": Part of skin ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
== Summary ==
Icon graphic for the tutorials and guides category page.
== Licensing ==
{{License|permission}}
22831d9438b6c38a6c69af409f003b8118938abe
File:Icon BoomTropes.png
6
299
344
2025-11-03T15:40:55Z
MasterOfDisillusionment
431405
Icon graphic for the boom tropes category page.
wikitext
text/x-wiki
== Summary ==
Icon graphic for the boom tropes category page.
== Licensing ==
{{License|permission}}
6aaa14ffa03ebf1032800f1fdd730847aa26e5cf
345
344
2025-11-03T15:41:10Z
MasterOfDisillusionment
431405
Protected "[[File:Icon BoomTropes.png]]": Part of skin ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
== Summary ==
Icon graphic for the boom tropes category page.
== Licensing ==
{{License|permission}}
6aaa14ffa03ebf1032800f1fdd730847aa26e5cf
Hardcore Doom Wiki/about
0
6
347
11
2025-11-03T15:49:12Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{Main page box/start
| title = About This Wiki
}}
Welcome to the Hardcore Doom wiki! This place serves as a modding resource for a curated list of UZDoom engine games, most notably Doom, Heretic, and Malefact, in addition to documenting the mods created by our community of mod and level makers. You can also find guides on how to get started with UZDoom modding and level design here. The wiki is also home to Boom Tropes, an archive of recurring design elements, level setups, and architectural patterns found in classic FPS games and their mods.
<div style="text-align:right">[[Hardcore Doom|Read more...]]</div>
{{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line -->
b385db1a035c81a7aeea1777ccc95069c5ae18a1
348
347
2025-11-03T15:52:51Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{Main page box/start
| title = About This Wiki
}}
Welcome to the Hardcore Doom wiki! This place serves as a modding resource for a curated list of UZDoom engine games, most notably Doom, Heretic, and Malefact, in addition to documenting the mods created by our community of mod and level makers. You can also find guides on how to get started with UZDoom modding and level design here. The wiki is also home to Boom Tropes, an archive of recurring design elements, level setups, and architectural patterns commonly found in classic (e.g. 'boomer shooter') fps games and their mods.
<div style="text-align:right">[[Hardcore Doom|Read more...]]</div>
{{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line -->
8aab2090b4f48432a82190510eafe8c10f6674d7
File:Icon HardcoreDoom.png
6
300
349
2025-11-03T16:04:09Z
MasterOfDisillusionment
431405
Icon graphic for the hardcore Doom website.
wikitext
text/x-wiki
== Summary ==
Icon graphic for the hardcore Doom website.
== Licensing ==
{{License|permission}}
b990038b12e080539e70bcf79d3564febe49a3c1
350
349
2025-11-03T16:04:28Z
MasterOfDisillusionment
431405
Protected "[[File:Icon HardcoreDoom.png]]": Part of skin ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
== Summary ==
Icon graphic for the hardcore Doom website.
== Licensing ==
{{License|permission}}
b990038b12e080539e70bcf79d3564febe49a3c1
Hardcore Doom Wiki/external
0
8
351
15
2025-11-03T16:10:05Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{Main page box/start
| title = External links
}}
<div class="mp-links columns-2">
* {{MP link| Official site |link=https://hardcoredoom.com/ |image=Icon HardcoreDoom.png |size=64x64px }}
* {{MP link| Discord |link=https://discord.gg/vVMV2zHEFA |image=Discord.svg |size=64x64px }}
* {{MP link| X |link=https://x.com/goremaxxed33966g |image=Bluesky.svg |size=64x64px }}
* {{MP link| YouTube |link=https://www.youtube.com/@GoreMaxxed |image=indie.io.svg |size=64x64px }}
</div>
{{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line -->
8cbae8f439571c506c4fb3150f4af9ed9f0e40fb
352
351
2025-11-03T16:16:17Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{Main page box/start
| title = External links
}}
<div class="mp-links columns-2">
* {{MP link| Official site |link=https://hardcoredoom.com/ |image=Icon HardcoreDoom.png |size=64x64px }}
* {{MP link| Discord |link=https://discord.gg/vVMV2zHEFA |image=Discord.svg |size=64x64px }}
* {{MP link| X |link=https://x.com/GoremaxxedProductions |image=Bluesky.svg |size=64x64px }}
* {{MP link| YouTube |link=https://www.youtube.com/@GoreMaxxed |image=indie.io.svg |size=64x64px }}
</div>
{{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line -->
e6c7c5a9a058938a5a032b2b19c71303393dbed1
353
352
2025-11-03T16:28:01Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{Main page box/start
| title = External links
}}
<div class="mp-links columns-2">
* {{MP link| Official site |link=https://hardcoredoom.com/ |image=Icon HardcoreDoom.png |size=64x64px }}
* {{MP link| Discord |link=https://discord.gg/vVMV2zHEFA |image=Discord.svg |size=64x64px }}
* {{MP link| X |link=https://x.com/goremaxxed33966/status/1985383309493326207 |image=Bluesky.svg |size=64x64px }}
* {{MP link| YouTube |link=https://www.youtube.com/@GoreMaxxed |image=indie.io.svg |size=64x64px }}
</div>
{{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line -->
2c659442bc88fb705fb8137f18a74092688f3c58
358
353
2025-11-03T22:59:41Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{Main page box/start
| title = External links
}}
<div class="mp-links columns-2">
* {{MP link| Official site |link=https://hardcoredoom.com/ |image=Icon HardcoreDoom.png |size=64x64px }}
* {{MP link| Discord |link=https://discord.gg/vVMV2zHEFA |image=Discord.svg |size=64x64px }}
* {{MP link| X |link=https://x.com/goremaxxed33966/status/1985383309493326207 |image=Icon X.png |size=64x64px }}
* {{MP link| YouTube |link=https://www.youtube.com/@GoreMaxxed |image=Icon Youtube.png |size=64x64px }}
</div>
{{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line -->
a787830d3ec8c51db5e87ee62ac2a6241ca3988b
File:Icon X.png
6
301
354
2025-11-03T22:55:41Z
MasterOfDisillusionment
431405
Social media icon for X.
wikitext
text/x-wiki
== Summary ==
Social media icon for X.
== Licensing ==
{{License|permission}}
6bcb78517131f3e0820b0eccc1f363aa0999043f
357
354
2025-11-03T22:56:47Z
MasterOfDisillusionment
431405
Protected "[[File:Icon X.png]]": Part of skin ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
== Summary ==
Social media icon for X.
== Licensing ==
{{License|permission}}
6bcb78517131f3e0820b0eccc1f363aa0999043f
File:Icon Youtube.png
6
302
355
2025-11-03T22:56:25Z
MasterOfDisillusionment
431405
Icon for the youtube social media link.
wikitext
text/x-wiki
== Summary ==
Icon for the youtube social media link.
== Licensing ==
{{License|permission}}
6874d37f362191e91cbe9183899b1edb9192bed5
356
355
2025-11-03T22:56:36Z
MasterOfDisillusionment
431405
Protected "[[File:Icon Youtube.png]]": Part of skin ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
== Summary ==
Icon for the youtube social media link.
== Licensing ==
{{License|permission}}
6874d37f362191e91cbe9183899b1edb9192bed5
Template:GameInfo Infobox
10
303
359
2025-11-03T23:41:01Z
MasterOfDisillusionment
431405
Created page with "<includeonly>{{#invoke:Infobox|main {{#invoke:Infobox|main |kind=GameInfo |sep=, |image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}} |sections=General Info, Modding & Community, External Resources |General Info=Release date, Engine, Setting/Theme, Latest Version, Developer(s), Publisher(s) |Modding & Community=Mod support, Notable mods/total conversions |External Resources=Official website, steam page, GOG page, ModDB page }} </includeonly><noinclude> {{documen..."
wikitext
text/x-wiki
<includeonly>{{#invoke:Infobox|main
{{#invoke:Infobox|main
|kind=GameInfo
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Modding & Community, External Resources
|General Info=Release date, Engine, Setting/Theme, Latest Version, Developer(s), Publisher(s)
|Modding & Community=Mod support, Notable mods/total conversions
|External Resources=Official website, steam page, GOG page, ModDB page
}}
</includeonly><noinclude>
{{documentation}}
[[Category:Infobox templates]]</noinclude>
d8bb3ed3e4edbee382d2a672ac5b48f87726a183
360
359
2025-11-03T23:42:13Z
MasterOfDisillusionment
431405
MasterOfDisillusionment renamed page [[Template:GameInfo]] to [[Template:GameInfo Infobox]]: Misspelled title
wikitext
text/x-wiki
<includeonly>{{#invoke:Infobox|main
{{#invoke:Infobox|main
|kind=GameInfo
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Modding & Community, External Resources
|General Info=Release date, Engine, Setting/Theme, Latest Version, Developer(s), Publisher(s)
|Modding & Community=Mod support, Notable mods/total conversions
|External Resources=Official website, steam page, GOG page, ModDB page
}}
</includeonly><noinclude>
{{documentation}}
[[Category:Infobox templates]]</noinclude>
d8bb3ed3e4edbee382d2a672ac5b48f87726a183
364
360
2025-11-04T00:05:44Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
<includeonly>{{#invoke:Infobox|main
{{#invoke:Infobox|main
|kind=GameInfo
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Modding & Community, External Resources
|General Info=Release date, Engine, Setting/Theme, Latest Version, Developer(s), Publisher(s)
|Modding & Community=Mod support, Notable mods/total conversions
|External Resources=Official website, Steam page, GOG page, ModDB page
}}
</includeonly><noinclude>
{{documentation}}
[[Category:Infobox templates]]</noinclude>
beffa62e93cb2d94bce125978dd1e7e916174f27
367
364
2025-11-04T00:43:30Z
RheingoldRiver
2743
wikitext
text/x-wiki
<includeonly>{{#invoke:Infobox|main
|kind=GameInfo
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Modding & Community, External Resources
|General Info=Release date, Engine, Setting/Theme, Latest Version, Developer(s), Publisher(s)
|Modding & Community=Mod support, Notable mods/total conversions
|External Resources=Official website, Steam page, GOG page, ModDB page
}}</includeonly><noinclude>
{{documentation}}
[[Category:Infobox templates]]</noinclude>
c4115bd4dd24fabca73d420aba8485dd2216fb71
Template:GameInfo
10
304
361
2025-11-03T23:42:13Z
MasterOfDisillusionment
431405
MasterOfDisillusionment renamed page [[Template:GameInfo]] to [[Template:GameInfo Infobox]]: Misspelled title
wikitext
text/x-wiki
#REDIRECT [[Template:GameInfo Infobox]]
dafeca5c56cc8189a7adfea5a618e106f612e601
File:DoomCover.jpg
6
305
362
2025-11-03T23:58:01Z
MasterOfDisillusionment
431405
Cover art for Doom.
wikitext
text/x-wiki
== Summary ==
Cover art for Doom.
== Licensing ==
{{License|fairuse}}
66ba17c907796cd30787791247cc4301d3ff36be
363
362
2025-11-03T23:58:36Z
MasterOfDisillusionment
431405
Protected "[[File:DoomCover.jpg]]": Infobox images for games should not be changed. ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
== Summary ==
Cover art for Doom.
== Licensing ==
{{License|fairuse}}
66ba17c907796cd30787791247cc4301d3ff36be
Doom
0
306
365
2025-11-04T00:06:39Z
MasterOfDisillusionment
431405
Created page with "{{GameInfo |title= Doom |image= DoomCover.jpg |Release date= 1993 |Engine= id Tech 1 |Setting/Theme= Sci-fi, military, satanic. |Latest Version= 1.9 |Developer(s)= id Software |Publisher(s)= id Software |Mod support= Extensive; source port is public and numerous tools exist. |Notable mods/total conversions= Brutal Doom, Final Doomer+, Plutona 2 |Official website= Discontinued |Steam page= [[https://store.steampowered.com/app/2280/DOOM__DOOM_II/| DOOM & DOOM II]] |G..."
wikitext
text/x-wiki
{{GameInfo
|title= Doom
|image= DoomCover.jpg
|Release date= 1993
|Engine= id Tech 1
|Setting/Theme= Sci-fi, military, satanic.
|Latest Version= 1.9
|Developer(s)= id Software
|Publisher(s)= id Software
|Mod support= Extensive; source port is public and numerous tools exist.
|Notable mods/total conversions= Brutal Doom, Final Doomer+, Plutona 2
|Official website= Discontinued
|Steam page= [[https://store.steampowered.com/app/2280/DOOM__DOOM_II/| DOOM & DOOM II]]
|GOG page= [[https://www.gog.com/en/game/doom_doom_ii| DOOM & DOOM II]]
|ModDB page=
}}
Doom is a first person shooter action game created by Id Software and published in 1993.
d96eecc1db5c517975c1e1b6c47416cc32fa69e1
366
365
2025-11-04T00:11:12Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{GameInfo
|title= Doom
|image= DoomCover.jpg
|Release date= 1993
|Engine= id Tech 1
|Setting/Theme= Sci-fi military, satanic.
|Latest Version= 1.9
|Developer(s)= id Software
|Publisher(s)= id Software
|Mod support= Extensive; source port is public and numerous tools exist.
|Notable mods/total conversions= * Brutal Doom
* Final Doomer+
* Plutona 2
|Official website=
|Steam page= [[https://store.steampowered.com/app/2280/DOOM__DOOM_II/| DOOM & DOOM II]]
|GOG page= [[https://www.gog.com/en/game/doom_doom_ii| DOOM & DOOM II]]
|ModDB page=
}}
Doom is a first person shooter action game created by Id Software and published in 1993.
0f9944c780b9b1c9e123549b4c040ffa42d7564f
373
366
2025-11-04T18:35:00Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{GameInfo
|title= Doom
|image= DoomCover.jpg
|Release date= 1993
|Engine= id Tech 1
|Setting/Theme= Sci-fi military, satanic.
|Latest Version= 1.9
|Developer(s)= id Software
|Publisher(s)= id Software
|Mod support= Extensive; source port is public and numerous tools exist.
|Notable mods/total conversions= * Brutal Doom
* Final Doomer+
* Plutona 2
|Official website=
|Steam page= [[https://store.steampowered.com/app/2280/DOOM__DOOM_II/| DOOM & DOOM II]]
|GOG page= [[https://www.gog.com/en/game/doom_doom_ii| DOOM & DOOM II]]
|ModDB page=
}}
Doom is a first person shooter action game created by Id Software and published in 1993.
[[Category:Game Information]]
59166b72f162029bb20e9f287d3f0deedd042581
374
373
2025-11-04T18:56:09Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{GameInfo
|title= Doom
|image= DoomCover.jpg
|Release date= 1993
|Engine= id Tech 1
|Setting/Theme= Sci-fi military, satanic.
|Latest Version= 1.9
|Developer(s)= id Software
|Publisher(s)= id Software
|Mod support= Extensive; source port is public and numerous tools exist.
|Notable mods/total conversions= * Brutal Doom
* Final Doomer+
* Plutona 2
|Official website=
|Steam page= [[https://store.steampowered.com/app/2280/DOOM__DOOM_II/| DOOM & DOOM II]]
|GOG page= [[https://www.gog.com/en/game/doom_doom_ii| DOOM & DOOM II]]
|ModDB page=
}}
Doom is a first person shooter action game created by Id Software and published in 1993.
= Gameplay =
== Mechanics ==
Insert Content.
== Weapons ==
Insert Content.
== Enemies ==
Insert Content.
== Levels ==
Insert Content.
= Setting and Story=
== Plot ==
Insert Content.
== Characters ==
Insert Content.
= Design =
== Graphics & Audio ==
Insert Content.
== Visuals ==
Insert Content.
= Development History =
== Early Concepts ==
Insert Content.
== Beta ==
Insert Content.
== Final Build ==
Insert Content.
[[Category:Game Information]]
57f401fb9a8c772b85b60b18f3fe01725714b05c
Template:GameInfo Infobox/doc
10
307
368
2025-11-04T01:22:13Z
MasterOfDisillusionment
431405
Created page with "This is an example GameInfo infobox using the DRUID infobox framework. == Copyable code for use on other content pages == If you want to create pages using this infobox, you can copy the code below. This code is for CONTENT PAGES ONLY. It does not have anything to do with changing what the template supports. A field can be left empty if the data for it is not needed. <syntaxhighlight lang="wikitext" style="overflow: auto;"> {{GameInfo |title= Game Title |image= Image..."
wikitext
text/x-wiki
This is an example GameInfo infobox using the DRUID infobox framework.
== Copyable code for use on other content pages ==
If you want to create pages using this infobox, you can copy the code below. This code is for CONTENT PAGES ONLY. It does not have anything to do with changing what the template supports. A field can be left empty if the data for it is not needed.
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{GameInfo
|title= Game Title
|image= ImageFileName.png
|Release date= Whatever Release Date
|Engine= Whatever Engine
|Setting/Theme= Theme or Setting 1, Ditto 2, etc.
|Latest Version= Whatever Latest Version
|Developer(s)= Whatever Developer
|Publisher(s)= Whatever Publisher
|Mod support= A concise description of modding capabilities.
|Notable mods/total conversions= * Mod 1
* Mod 2 etc.
|Official website= Whatever Official website
|Steam page= [[https://store.steampowered.com/app/2280/DOOM__DOOM_II| Steam Page]]
|GOG page= [[https://www.gog.com/en/game/doom_doom_ii| GOG Page]]
|ModDB page= [[https://www.gog.com/en/game/doom_doom_ii| ModDB Page]]
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
5b222fe28382a9052db45f689cca0acb03c77a79
369
368
2025-11-04T01:26:24Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This is an example GameInfo infobox using the DRUID infobox framework.
= Copyable code for use on other content pages =
If you want to create pages using this infobox, you can copy the code below. This code is for CONTENT PAGES ONLY. It does not have anything to do with changing what the template supports. A field can be left empty if the data for it is not needed.
== Example Code ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{GameInfo
|title= Game Title
|image= ImageFileName.png
|Release date= Whatever Release Date
|Engine= Whatever Engine
|Setting/Theme= Theme or Setting 1, Ditto 2, etc.
|Latest Version= Whatever Latest Version
|Developer(s)= Whatever Developer
|Publisher(s)= Whatever Publisher
|Mod support= A concise description of modding capabilities.
|Notable mods/total conversions= * Mod 1
* Mod 2 etc.
|Official website= Whatever Official website
|Steam page= [[https://store.steampowered.com/app/2280/DOOM__DOOM_II| Steam Page]]
|GOG page= [[https://www.gog.com/en/game/doom_doom_ii| GOG Page]]
|ModDB page= [[https://www.gog.com/en/game/doom_doom_ii| ModDB Page]]
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
== Clean Version ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{GameInfo
|title=
|image=
|Release date=
|Engine=
|Setting/Theme=
|Latest Version=
|Developer(s)=
|Publisher(s)=
|Mod support=
|Notable mods/total conversions=
|Official website=
|Steam page=
|GOG page=
|ModDB page=
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
8433313752b166d7c86222fac23ae34719592e0c
Category:Game Information
14
290
370
333
2025-11-04T01:47:48Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Relevant Doom engine games are listed on this page.
= Classic =
The original classics from the 90s are listed here.
== [[Doom]] ==
Doom is a first person shooter action game created by Id Software and published in 1993.
== [[Heretic]] ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis, id elementum eros.
= Modern =
Neo-boomer shooters created using a modified version of the Doom engine (e.g. UZDoom) should be listed here.
== [[Malefact]] ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis, id elementum eros.
a0decba7a6c40d8c88c429b8fa823d901e5efc37
371
370
2025-11-04T01:49:05Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Relevant Doom engine games are listed on this page.
= Classic =
The original classics from the 90s.
== [[Doom]] ==
Doom is a first person shooter action game created by Id Software and published in 1993.
== [[Heretic]] ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis, id elementum eros.
= Modern =
Neo-boomer shooters created using a modified version of the Doom engine (e.g. UZDoom/GZDoom).
== [[Malefact]] ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis, id elementum eros.
8876466ae30fe5fd7e108847d7aaa950aadc6dd6
372
371
2025-11-04T18:34:42Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Relevant Doom engine games are listed on this page.
= Classic =
The original classics from the 90s.
== [[Doom]] ==
Doom is a first person shooter action game created by Id Software and published in 1993.
== [[Heretic]] ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis, id elementum eros.
= Modern =
Neo-boomer shooters created using a modified version of the Doom engine (e.g. UZDoom/GZDoom).
== [[Malefact]] ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis, id elementum eros.
[[Category:Game Information]]
e753721930994b869873ff23172578fa23f10519
File:MalefactCover.png
6
308
375
2025-11-04T19:40:57Z
MasterOfDisillusionment
431405
Cover art for Malefact.
wikitext
text/x-wiki
== Summary ==
Cover art for Malefact.
== Licensing ==
{{License|game}}
ce21465945632a1315368bbc5f57f9d8243f7932
Malefact
0
309
376
2025-11-04T19:43:36Z
MasterOfDisillusionment
431405
Created page with "{{GameInfo |title= Malefact: Evil Unchained |image= MalefactCover.png |Release date= Unreleased |Engine= [[UZDoom Engine]] |Setting/Theme= Fantasy-horror, satanic, grimdark. |Latest Version= 0.2 (Dev Build only) |Developer(s)= [[GoreMaxxed Productions]] |Publisher(s)= [[GoreMaxxed Productions]] |Mod support= Extensive; uses same tools as other UZDoom engine games |Notable mods/total conversions= |Official website= |Steam page= |GOG page= |ModDB page= }} Malefact..."
wikitext
text/x-wiki
{{GameInfo
|title= Malefact: Evil Unchained
|image= MalefactCover.png
|Release date= Unreleased
|Engine= [[UZDoom Engine]]
|Setting/Theme= Fantasy-horror, satanic, grimdark.
|Latest Version= 0.2 (Dev Build only)
|Developer(s)= [[GoreMaxxed Productions]]
|Publisher(s)= [[GoreMaxxed Productions]]
|Mod support= Extensive; uses same tools as other UZDoom engine games
|Notable mods/total conversions=
|Official website=
|Steam page=
|GOG page=
|ModDB page=
}}
Malefact is a fantasy horror first-person shooter currently in development by GoreMaxxed Productions. Built on the UZDoom engine, the game combines classic boomer shooter mechanics with horror elements and dark fantasy themes. The project is led by developer hardcore_gamer, with a demo version expected to release in Q1 2026.
8cf2dff9c6cbe96582456cbe4dd6f952da56d005
377
376
2025-11-04T22:07:52Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{GameInfo
|title= Malefact: Evil Unchained
|image= MalefactCover.png
|Release date= Unreleased
|Engine= [[UZDoom Engine]]
|Setting/Theme= Fantasy-horror, satanic, grimdark.
|Latest Version= 0.2 (Dev Build only)
|Developer(s)= [[GoreMaxxed Productions]]
|Publisher(s)= [[GoreMaxxed Productions]]
|Mod support= Extensive; uses same tools as other UZDoom engine games
|Notable mods/total conversions=
|Official website=
|Steam page=
|GOG page=
|ModDB page=
}}
Malefact is a fantasy horror first-person shooter currently in development by GoreMaxxed Productions. Built on the UZDoom engine, the game combines classic boomer shooter mechanics with horror elements and dark fantasy themes. The project is led by developer hardcore_gamer, with a demo version expected to release in Q1 2026.
= Gameplay =
== Mechanics ==
The movement system in Malefact uses the same foundation as other Doom engine games but with free-mouse aiming controls in mind. In a departure from most titles in the genre, the game employs slower movement speeds and disables sprinting by default for a more immersive horror experience. Players can only achieve faster movement through temporary power-ups that boost speed for limited durations.
A central gameplay element comes in the form of the [[Books of Destruction]], magical tomes that provide access to various spells and abilities. While a book is equipped or selected, both the player character and all enemies freeze in place, creating a tactical pause system that allows for spell selection without the pressure of taking damage.
As is tradition with games of this genre, levels feature secret areas, but Malefact handles this slightly differently. Instead of marking specific areas (e.g. 'map sectors') as secrets, each level contains exactly three locked doors requiring corresponding [[Secret Key|secret keys]] hidden throughout the environment. This standardized approach means every level in the base game contains precisely three secrets, providing consistent exploration objectives across all stages. Mappers can still add secrets to their user-made levels the conventional way, however.
== Weapons ==
Malefact features an arsenal of conventional and magical weapons, complemented by the four Books of Destruction. The confirmed weapons include:
* Knife - A serial killer-esque Buck knife.
* Colt Revolver - Wild West-styled firearm available in single and dual-wielded mode.
* Sawed-off Shotgun - Wild West inspired double-barrel sawed-off shotgun.
* Stake Gun - Steampunk-inspired rapid-fire stake launcher.
* Hellmasher - A demonic club constructed from satanic wood and flesh that launches spectral projectiles which travel a limited distance before self-destructing.
* Grim Reaper's Scythe - Unleashes horizontal spreads of energy projectiles while providing health regeneration from defeated enemies. As with projectiles thrown by the Hellmasher, the ones used by the Scythe can only travel a limited distance before self-destructing.
* The Books of Destruction serve as the game's magic system, with four books currently planned. Each book contains three distinct spells, though specific abilities remain subject to change during ongoing development.
== Enemies ==
While the final enemy roster remains in development, the completed game will feature between twelve and seventeen distinct enemy types. The upcoming demo has confirmed three enemies that players will encounter:
* Sloth: Basic zombie-like fodder enemy.
* Craver: Low-to-mid tier melee type.
* Warden: Low-tier warrior class enemy capable of both melee strikes and ranged projectile attacks.
== Levels ==
Malefact's campaign structure will consist of four episodes at launch, containing twelve levels each:
* Episode 1: The Weeping Know No Joy – Takes place within the Damnatorum and its extensive torture dungeon complexes.
* Episode 2: The Fields That Burn – Takes place on the infernal planes and in various hellish interpretations of rural landscapes and locations.
* Episode 3: No Flag Flies for the Damned – A series of heavily fortified strongholds protecting the Gate of Hell, representing the most defended territory in the infernal realm.
* Episode 4: Holocaust of the Living – Shifts the action to Earth, where Malefact unleashes destruction following his successful escape from Hell and subsequent transformation into a [[Chaos Demon]].
Additional expansion episodes may be developed following the game's release, though no official confirmation exists regarding post-launch content.
= Setting and Story =
== Plot ==
Players control Malefact, an undead serial killer condemned to eternal torment within the Damnatorum, Hell's deepest and most horrific dungeon complex reserved exclusively for the most irredeemable sinners. Prior to the game's events, Malefact receives a direct mental communication from God himself, offering unholy powers capable of facilitating escape from his prison of suffering. The divine proposition requires Malefact to wage war against Hell itself in exchange for these abilities. Despite God's acknowledgment that this path will likely result in Malefact's destruction, both parties recognize Malefact's indifference to his own fate.
The game begins with Malefact's newfound freedom and his campaign of destruction against Hell's dominion. However, God's scheme backfires spectacularly when Malefact successfully completes his rampage through Hell, escapes to Earth, and initiates Armageddon upon humanity.
== Characters ==
Malefact is currently the only confirmed named character within the game's setting, the title having been earned through infamy rather than serving as his actual identity, which remains unknown. The specifics of his backstory are shrouded in mystery, with little known beyond the fact that he lived and operated as a serial killer in mid-nineteenth-century frontier America before his damnation.
= Design =
== Music & Audio ==
Levels feature ambient drones and atmospheric textures as their baseline soundscape, similar to Doom 64 or the PlayStation version of Doom. During scripted sequences or intense combat encounters, the soundtrack may sometimes shift to include instrumental tracks and death metal riffs appropriate to the game's dark thematic elements. Certain levels, like the introductory maps and final boss encounters, exclusively use instrumental tracks.
== Visuals & Graphics ==
The game’s graphical assets are created in the same resolutions as those of its classic counterparts, with low texture resolutions by modern standards, yet without the technical color limitations that constrained developers during the 1990s. The resulting aesthetic is distinctly retro whilst simultaneously benefiting from modern technology.
Stylistically, the game’s mood is grim and gloomy, making heavy use of dark colors such as gray and black mixed with warm tones like red and orange. The game’s interpretation of hell is partly inspired by horror films such as the Hellraiser series and Event Horizon, both of which depict their own versions of hell.
= Development History =
== Early Concepts ==
Development of Malefact began in late 2023, when [[hardcore_gamer]] started assembling a team to create a horror-focused first-person shooter using the GZDoom engine. Early development faced difficulties in finding suitable talent until artist Stefan joined the project, proving exceptionally well-suited to realizing the game’s grimdark aesthetic. Other hopefuls had submitted their own attempts but were ultimately rejected for failing to meet hardcore_gamer’s creative vision. Later, hardcore_gamer founded GoreMaxxed Productions, the official, non-profit trademark of the development group.
Original design concepts included an elaborate spell selection interface resembling a physical spellbook menu system. Complete graphics were produced for this feature before technical limitations within the UZDoom engine necessitated abandonment of the complex interface in favor of the current spellbook item implementation. The tactical pause mechanic that freezes gameplay during spell selection survived this design transition and remains a core gameplay element.
== Alpha Demo ==
The demo version scheduled for Q1 2026 will include two complete levels, several weapons from the main arsenal, three enemy types, and the first Book of Destruction. Access to the demo requires players to join the Discord server and register as beta testers.
[[Category:Game Information]]
73632c0f284c0009ad05c22bc5e87f8fd55b01a6
378
377
2025-11-04T22:26:00Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{GameInfo
|title= Malefact: Evil Unchained
|image= MalefactCover.png
|Release date= Unreleased
|Engine= [[UZDoom Engine]]
|Setting/Theme= Fantasy-horror, satanic, grimdark.
|Latest Version= 0.2 (Dev Build only)
|Developer(s)= [[GoreMaxxed Productions]]
|Publisher(s)= [[GoreMaxxed Productions]]
|Mod support= Extensive; uses same tools as other UZDoom engine games
|Notable mods/total conversions=
|Official website=
|Steam page=
|GOG page=
|ModDB page=
}}
Malefact is a fantasy horror first-person shooter currently in development by [[GoreMaxxed Productions]]. Built on the UZDoom engine, the game combines classic boomer shooter mechanics with horror elements and dark fantasy themes. The project is led by developer hardcore_gamer, with a demo version expected to release in Q1 2026.
= Gameplay =
== Mechanics ==
The movement system in Malefact uses the same foundation as other Doom engine games but with free-mouse aiming controls in mind. In a departure from most titles in the genre, the game employs slower movement speeds and disables sprinting by default for a more immersive horror experience. Players can only achieve faster movement through temporary power-ups that boost speed for limited durations.
A central gameplay element comes in the form of the [[Books of Destruction]], magical tomes that provide access to various spells and abilities. While a book is equipped or selected, both the player character and all enemies freeze in place, creating a tactical pause system that allows for spell selection without the pressure of taking damage.
As is tradition with games of this genre, levels feature secret areas, but Malefact handles this slightly differently. Instead of marking specific areas (e.g. 'map sectors') as secrets, each level contains exactly three locked doors requiring corresponding [[Secret Key|secret keys]] hidden throughout the environment. This standardized approach means every level in the base game contains precisely three secrets, providing consistent exploration objectives across all stages. Mappers can still add secrets to their user-made levels the conventional way, however.
== Weapons ==
Malefact features an arsenal of conventional and magical weapons, complemented by the four Books of Destruction. The confirmed weapons include:
* Knife - A serial killer-esque Buck knife.
* Colt Revolver - Wild West-styled firearm available in single and dual-wielded mode.
* Sawed-off Shotgun - Wild West inspired double-barrel sawed-off shotgun.
* Stake Gun - Steampunk-inspired rapid-fire stake launcher.
* Hellmasher - A demonic club constructed from satanic wood and flesh that launches spectral projectiles which travel a limited distance before self-destructing.
* Grim Reaper's Scythe - Unleashes horizontal spreads of energy projectiles while providing health regeneration from defeated enemies. As with projectiles thrown by the Hellmasher, the ones used by the Scythe can only travel a limited distance before self-destructing.
* The Books of Destruction serve as the game's magic system, with four books currently planned. Each book contains three distinct spells, though specific abilities remain subject to change during ongoing development.
== Enemies ==
While the final enemy roster remains in development, the completed game will feature between twelve and seventeen distinct enemy types. The upcoming demo has confirmed three enemies that players will encounter:
* Sloth: Basic zombie-like fodder enemy.
* Craver: Low-to-mid tier melee type.
* Warden: Low-tier warrior class enemy capable of both melee strikes and ranged projectile attacks.
== Levels ==
Malefact's campaign structure will consist of four episodes at launch, containing twelve levels each:
* Episode 1: The Weeping Know No Joy – Takes place within the Damnatorum and its extensive torture dungeon complexes.
* Episode 2: The Fields That Burn – Takes place on the infernal planes and in various hellish interpretations of rural landscapes and locations.
* Episode 3: No Flag Flies for the Damned – A series of heavily fortified strongholds protecting the Gate of Hell, representing the most defended territory in the infernal realm.
* Episode 4: Holocaust of the Living – Shifts the action to Earth, where Malefact unleashes destruction following his successful escape from Hell and subsequent transformation into a [[Chaos Demon]].
Additional expansion episodes may be developed following the game's release, though no official confirmation exists regarding post-launch content.
= Setting and Story =
== Plot ==
Players control Malefact, an undead serial killer condemned to eternal torment within the Damnatorum, Hell's deepest and most horrific dungeon complex reserved exclusively for the most irredeemable sinners. Prior to the game's events, Malefact receives a direct mental communication from God himself, offering unholy powers capable of facilitating escape from his prison of suffering. The divine proposition requires Malefact to wage war against Hell itself in exchange for these abilities. Despite God's acknowledgment that this path will likely result in Malefact's destruction, both parties recognize Malefact's indifference to his own fate.
The game begins with Malefact's newfound freedom and his campaign of destruction against Hell's dominion. However, God's scheme backfires spectacularly when Malefact successfully completes his rampage through Hell, escapes to Earth, and initiates Armageddon upon humanity.
== Characters ==
Malefact is currently the only confirmed named character within the game's setting, the title having been earned through infamy rather than serving as his actual identity, which remains unknown. The specifics of his backstory are shrouded in mystery, with little known beyond the fact that he lived and operated as a serial killer in mid-nineteenth-century frontier America before his damnation.
= Design =
== Music & Audio ==
Levels feature ambient drones and atmospheric textures as their baseline soundscape, similar to Doom 64 or the PlayStation version of Doom. During scripted sequences or intense combat encounters, the soundtrack may sometimes shift to include instrumental tracks and death metal riffs appropriate to the game's dark thematic elements. Certain levels, like the introductory maps and final boss encounters, exclusively use instrumental tracks.
== Visuals & Graphics ==
The game’s graphical assets are created in the same resolutions as those of its classic counterparts, with low texture resolutions by modern standards, yet without the technical color limitations that constrained developers during the 1990s. The resulting aesthetic is distinctly retro whilst simultaneously benefiting from modern technology.
Stylistically, the game’s mood is grim and gloomy, making heavy use of dark colors such as gray and black mixed with warm tones like red and orange. The game’s interpretation of hell is partly inspired by horror films such as the Hellraiser series and Event Horizon, both of which depict their own versions of hell.
= Development History =
== Early Concepts ==
Development of Malefact began in late 2023, when [[hardcore_gamer]] started assembling a team to create a horror-focused first-person shooter using the GZDoom engine. Early development faced difficulties in finding suitable talent until artist Stefan joined the project, proving exceptionally well-suited to realizing the game’s grimdark aesthetic. Other hopefuls had submitted their own attempts but were ultimately rejected for failing to meet hardcore_gamer’s creative vision. Later, hardcore_gamer founded GoreMaxxed Productions.
Original design concepts included an elaborate spell selection interface resembling a physical spellbook menu system. Complete graphics were produced for this feature before technical limitations within the UZDoom engine necessitated abandonment of the complex interface in favor of the current spellbook item implementation. The tactical pause mechanic that freezes gameplay during spell selection survived this design transition and remains a core gameplay element.
== Alpha Demo ==
The demo version scheduled for Q1 2026 will include two complete levels, several weapons from the main arsenal, three enemy types, and the first Book of Destruction. Access to the demo requires players to join the Discord server and register as beta testers.
[[Category:Game Information]]
2e979b7010ead66e203ce7200c32bf2dc5940ccc
379
378
2025-11-04T22:26:22Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{GameInfo
|title= Malefact: Evil Unchained
|image= MalefactCover.png
|Release date= Unreleased
|Engine= [[UZDoom Engine]]
|Setting/Theme= Fantasy-horror, satanic, grimdark.
|Latest Version= 0.2 (Dev Build only)
|Developer(s)= [[GoreMaxxed Productions]]
|Publisher(s)= [[GoreMaxxed Productions]]
|Mod support= Extensive; uses same tools as other UZDoom engine games
|Notable mods/total conversions=
|Official website=
|Steam page=
|GOG page=
|ModDB page=
}}
Malefact is a fantasy horror first-person shooter currently in development by [[GoreMaxxed Productions]]. Built on the UZDoom engine, the game combines classic boomer shooter mechanics with horror elements and dark fantasy themes. The project is led by developer [[hardcore_gamer]], with a demo version expected to release in Q1 2026.
= Gameplay =
== Mechanics ==
The movement system in Malefact uses the same foundation as other Doom engine games but with free-mouse aiming controls in mind. In a departure from most titles in the genre, the game employs slower movement speeds and disables sprinting by default for a more immersive horror experience. Players can only achieve faster movement through temporary power-ups that boost speed for limited durations.
A central gameplay element comes in the form of the [[Books of Destruction]], magical tomes that provide access to various spells and abilities. While a book is equipped or selected, both the player character and all enemies freeze in place, creating a tactical pause system that allows for spell selection without the pressure of taking damage.
As is tradition with games of this genre, levels feature secret areas, but Malefact handles this slightly differently. Instead of marking specific areas (e.g. 'map sectors') as secrets, each level contains exactly three locked doors requiring corresponding [[Secret Key|secret keys]] hidden throughout the environment. This standardized approach means every level in the base game contains precisely three secrets, providing consistent exploration objectives across all stages. Mappers can still add secrets to their user-made levels the conventional way, however.
== Weapons ==
Malefact features an arsenal of conventional and magical weapons, complemented by the four Books of Destruction. The confirmed weapons include:
* Knife - A serial killer-esque Buck knife.
* Colt Revolver - Wild West-styled firearm available in single and dual-wielded mode.
* Sawed-off Shotgun - Wild West inspired double-barrel sawed-off shotgun.
* Stake Gun - Steampunk-inspired rapid-fire stake launcher.
* Hellmasher - A demonic club constructed from satanic wood and flesh that launches spectral projectiles which travel a limited distance before self-destructing.
* Grim Reaper's Scythe - Unleashes horizontal spreads of energy projectiles while providing health regeneration from defeated enemies. As with projectiles thrown by the Hellmasher, the ones used by the Scythe can only travel a limited distance before self-destructing.
* The Books of Destruction serve as the game's magic system, with four books currently planned. Each book contains three distinct spells, though specific abilities remain subject to change during ongoing development.
== Enemies ==
While the final enemy roster remains in development, the completed game will feature between twelve and seventeen distinct enemy types. The upcoming demo has confirmed three enemies that players will encounter:
* Sloth: Basic zombie-like fodder enemy.
* Craver: Low-to-mid tier melee type.
* Warden: Low-tier warrior class enemy capable of both melee strikes and ranged projectile attacks.
== Levels ==
Malefact's campaign structure will consist of four episodes at launch, containing twelve levels each:
* Episode 1: The Weeping Know No Joy – Takes place within the Damnatorum and its extensive torture dungeon complexes.
* Episode 2: The Fields That Burn – Takes place on the infernal planes and in various hellish interpretations of rural landscapes and locations.
* Episode 3: No Flag Flies for the Damned – A series of heavily fortified strongholds protecting the Gate of Hell, representing the most defended territory in the infernal realm.
* Episode 4: Holocaust of the Living – Shifts the action to Earth, where Malefact unleashes destruction following his successful escape from Hell and subsequent transformation into a [[Chaos Demon]].
Additional expansion episodes may be developed following the game's release, though no official confirmation exists regarding post-launch content.
= Setting and Story =
== Plot ==
Players control Malefact, an undead serial killer condemned to eternal torment within the Damnatorum, Hell's deepest and most horrific dungeon complex reserved exclusively for the most irredeemable sinners. Prior to the game's events, Malefact receives a direct mental communication from God himself, offering unholy powers capable of facilitating escape from his prison of suffering. The divine proposition requires Malefact to wage war against Hell itself in exchange for these abilities. Despite God's acknowledgment that this path will likely result in Malefact's destruction, both parties recognize Malefact's indifference to his own fate.
The game begins with Malefact's newfound freedom and his campaign of destruction against Hell's dominion. However, God's scheme backfires spectacularly when Malefact successfully completes his rampage through Hell, escapes to Earth, and initiates Armageddon upon humanity.
== Characters ==
Malefact is currently the only confirmed named character within the game's setting, the title having been earned through infamy rather than serving as his actual identity, which remains unknown. The specifics of his backstory are shrouded in mystery, with little known beyond the fact that he lived and operated as a serial killer in mid-nineteenth-century frontier America before his damnation.
= Design =
== Music & Audio ==
Levels feature ambient drones and atmospheric textures as their baseline soundscape, similar to Doom 64 or the PlayStation version of Doom. During scripted sequences or intense combat encounters, the soundtrack may sometimes shift to include instrumental tracks and death metal riffs appropriate to the game's dark thematic elements. Certain levels, like the introductory maps and final boss encounters, exclusively use instrumental tracks.
== Visuals & Graphics ==
The game’s graphical assets are created in the same resolutions as those of its classic counterparts, with low texture resolutions by modern standards, yet without the technical color limitations that constrained developers during the 1990s. The resulting aesthetic is distinctly retro whilst simultaneously benefiting from modern technology.
Stylistically, the game’s mood is grim and gloomy, making heavy use of dark colors such as gray and black mixed with warm tones like red and orange. The game’s interpretation of hell is partly inspired by horror films such as the Hellraiser series and Event Horizon, both of which depict their own versions of hell.
= Development History =
== Early Concepts ==
Development of Malefact began in late 2023, when [[hardcore_gamer]] started assembling a team to create a horror-focused first-person shooter using the GZDoom engine. Early development faced difficulties in finding suitable talent until artist Stefan joined the project, proving exceptionally well-suited to realizing the game’s grimdark aesthetic. Other hopefuls had submitted their own attempts but were ultimately rejected for failing to meet hardcore_gamer’s creative vision. Later, hardcore_gamer founded GoreMaxxed Productions.
Original design concepts included an elaborate spell selection interface resembling a physical spellbook menu system. Complete graphics were produced for this feature before technical limitations within the UZDoom engine necessitated abandonment of the complex interface in favor of the current spellbook item implementation. The tactical pause mechanic that freezes gameplay during spell selection survived this design transition and remains a core gameplay element.
== Alpha Demo ==
The demo version scheduled for Q1 2026 will include two complete levels, several weapons from the main arsenal, three enemy types, and the first Book of Destruction. Access to the demo requires players to join the Discord server and register as beta testers.
[[Category:Game Information]]
7edbb171cd52949749be7fcc0b3ab913d03edc5a
380
379
2025-11-04T23:13:19Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{GameInfo
|title= Malefact: Evil Unchained
|image= MalefactCover.png
|Release date= Unreleased
|Engine= [[UZDoom Engine]]
|Setting/Theme= Fantasy-horror, satanic, grimdark.
|Latest Version= 0.2 (Dev Build only)
|Developer(s)= [[GoreMaxxed Productions]]
|Publisher(s)= [[GoreMaxxed Productions]]
|Mod support= Extensive; uses same tools as other UZDoom engine games
|Notable mods/total conversions=
|Official website=
|Steam page=
|GOG page=
|ModDB page=
}}
Malefact is a fantasy horror first-person shooter currently in development by [[GoreMaxxed Productions]]. Built on the UZDoom engine, the game combines classic boomer shooter mechanics with horror elements and dark fantasy themes. The project is led by [[hardcore_gamer]], with a demo version expected to release in Q1 2026.
= Gameplay =
== Mechanics ==
The movement system in Malefact uses the same foundation as other Doom engine games but with free-mouse aiming controls in mind. In a departure from most titles in the genre, the game employs slower movement speeds and disables sprinting by default for a more immersive horror experience. Players can only achieve faster movement through temporary power-ups that boost speed for limited durations.
A central gameplay element comes in the form of the [[Books of Destruction]], magical tomes that provide access to various spells and abilities. While a book is equipped or selected, both the player character and all enemies freeze in place, creating a tactical pause system that allows for spell selection without the pressure of taking damage.
As is tradition with games of this genre, levels feature secret areas, but Malefact handles this slightly differently. Instead of marking specific areas (e.g. 'map sectors') as secrets, each level contains exactly three locked doors requiring corresponding [[Secret Key|secret keys]] hidden throughout the environment. This standardized approach means every level in the base game contains precisely three secrets, providing consistent exploration objectives across all stages. Mappers can still add secrets to their user-made levels the conventional way, however.
== Weapons ==
Malefact features an arsenal of conventional and magical weapons, complemented by the four Books of Destruction. The confirmed weapons include:
* Knife - A serial killer-esque Buck knife.
* Colt Revolver - Wild West-styled firearm available in single and dual-wielded mode.
* Sawed-off Shotgun - Wild West inspired double-barrel sawed-off shotgun.
* Stake Gun - Steampunk-inspired rapid-fire stake launcher.
* Hellmasher - A demonic club constructed from satanic wood and flesh that launches spectral projectiles which travel a limited distance before self-destructing.
* Grim Reaper's Scythe - Unleashes horizontal spreads of energy projectiles while providing health regeneration from defeated enemies. As with projectiles thrown by the Hellmasher, the ones used by the Scythe can only travel a limited distance before self-destructing.
* The Books of Destruction serve as the game's magic system, with four books currently planned. Each book contains three distinct spells, though specific abilities remain subject to change during ongoing development.
== Enemies ==
While the final enemy roster remains in development, the completed game will feature between twelve and seventeen distinct enemy types. The upcoming demo has confirmed three enemies that players will encounter:
* Sloth: Basic zombie-like fodder enemy.
* Craver: Low-to-mid tier melee type.
* Warden: Low-tier warrior class enemy capable of both melee strikes and ranged projectile attacks.
== Levels ==
Malefact's campaign structure will consist of four episodes at launch, containing twelve levels each:
* Episode 1: The Weeping Know No Joy – Takes place within the Damnatorum and its extensive torture dungeon complexes.
* Episode 2: The Fields That Burn – Takes place on the infernal planes and in various hellish interpretations of rural landscapes and locations.
* Episode 3: No Flag Flies for the Damned – A series of heavily fortified strongholds protecting the Gate of Hell, representing the most defended territory in the infernal realm.
* Episode 4: Holocaust of the Living – Shifts the action to Earth, where Malefact unleashes destruction following his successful escape from Hell and subsequent transformation into a [[Chaos Demon]].
Additional expansion episodes may be developed following the game's release, though no official confirmation exists regarding post-launch content.
= Setting and Story =
== Plot ==
Players control Malefact, an undead serial killer condemned to eternal torment within the Damnatorum, Hell's deepest and most horrific dungeon complex reserved exclusively for the most irredeemable sinners. Prior to the game's events, Malefact receives a direct mental communication from God himself, offering unholy powers capable of facilitating escape from his prison of suffering. The divine proposition requires Malefact to wage war against Hell itself in exchange for these abilities. Despite God's acknowledgment that this path will likely result in Malefact's destruction, both parties recognize Malefact's indifference to his own fate.
The game begins with Malefact's newfound freedom and his campaign of destruction against Hell's dominion. However, God's scheme backfires spectacularly when Malefact successfully completes his rampage through Hell, escapes to Earth, and initiates Armageddon upon humanity.
== Characters ==
Malefact is currently the only confirmed named character within the game's setting, the title having been earned through infamy rather than serving as his actual identity, which remains unknown. The specifics of his backstory are shrouded in mystery, with little known beyond the fact that he lived and operated as a serial killer in mid-nineteenth-century frontier America before his damnation.
= Design =
== Music & Audio ==
Levels feature ambient drones and atmospheric textures as their baseline soundscape, similar to Doom 64 or the PlayStation version of Doom. During scripted sequences or intense combat encounters, the soundtrack may sometimes shift to include instrumental tracks and death metal riffs appropriate to the game's dark thematic elements. Certain levels, like the introductory maps and final boss encounters, exclusively use instrumental tracks.
== Visuals & Graphics ==
The game’s graphical assets are created in the same resolutions as those of its classic counterparts, with low texture resolutions by modern standards, yet without the technical color limitations that constrained developers during the 1990s. The resulting aesthetic is distinctly retro whilst simultaneously benefiting from modern technology.
Stylistically, the game’s mood is grim and gloomy, making heavy use of dark colors such as gray and black mixed with warm tones like red and orange. The game’s interpretation of hell is partly inspired by horror films such as the Hellraiser series and Event Horizon, both of which depict their own versions of hell.
= Development History =
== Early Concepts ==
Development of Malefact began in late 2023, when [[hardcore_gamer]] started assembling a team to create a horror-focused first-person shooter using the GZDoom engine. Early development faced difficulties in finding suitable talent until artist Stefan joined the project, proving exceptionally well-suited to realizing the game’s grimdark aesthetic. Other hopefuls had submitted their own attempts but were ultimately rejected for failing to meet hardcore_gamer’s creative vision. Later, hardcore_gamer founded GoreMaxxed Productions.
Original design concepts included an elaborate spell selection interface resembling a physical spellbook menu system. Complete graphics were produced for this feature before technical limitations within the UZDoom engine necessitated abandonment of the complex interface in favor of the current spellbook item implementation. The tactical pause mechanic that freezes gameplay during spell selection survived this design transition and remains a core gameplay element.
== Alpha Demo ==
The demo version scheduled for Q1 2026 will include two complete levels, several weapons from the main arsenal, three enemy types, and the first Book of Destruction. Access to the demo requires players to join the Discord server and register as beta testers.
[[Category:Game Information]]
e98e55374c609037006d7849f0465226c39966bf
381
380
2025-11-04T23:17:21Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{GameInfo
|title= Malefact: Evil Unchained
|image= MalefactCover.png
|Release date= Unreleased
|Engine= [[UZDoom Engine]]
|Setting/Theme= Fantasy-horror, satanic, grimdark.
|Latest Version= 0.2 (Dev Build only)
|Developer(s)= [[GoreMaxxed Productions]]
|Publisher(s)= [[GoreMaxxed Productions]]
|Mod support= Extensive; uses same tools as other UZDoom engine games
|Notable mods/total conversions=
|Official website=
|Steam page=
|GOG page=
|ModDB page=
}}
Malefact is a fantasy horror boomer shooter in development by [[GoreMaxxed Productions]]. The project is led by [[hardcore_gamer]], with a demo version expected to release in Q1 2026. The game is built on the UZDoom engine
= Gameplay =
== Mechanics ==
The movement system in Malefact uses the same foundation as other Doom engine games but with free-mouse aiming controls in mind. In a departure from most titles in the genre, the game employs slower movement speeds and disables sprinting by default for a more immersive horror experience. Players can only achieve faster movement through temporary power-ups that boost speed for limited durations.
A central gameplay element comes in the form of the [[Books of Destruction]], magical tomes that provide access to various spells and abilities. While a book is equipped or selected, both the player character and all enemies freeze in place, creating a tactical pause system that allows for spell selection without the pressure of taking damage.
As is tradition with games of this genre, levels feature secret areas, but Malefact handles this slightly differently. Instead of marking specific areas (e.g. 'map sectors') as secrets, each level contains exactly three locked doors requiring corresponding [[Secret Key|secret keys]] hidden throughout the environment. This standardized approach means every level in the base game contains precisely three secrets, providing consistent exploration objectives across all stages. Mappers can still add secrets to their user-made levels the conventional way, however.
== Weapons ==
Malefact features an arsenal of conventional and magical weapons, complemented by the four Books of Destruction. The confirmed weapons include:
* Knife - A serial killer-esque Buck knife.
* Colt Revolver - Wild West-styled firearm available in single and dual-wielded mode.
* Sawed-off Shotgun - Wild West inspired double-barrel sawed-off shotgun.
* Stake Gun - Steampunk-inspired rapid-fire stake launcher.
* Hellmasher - A demonic club constructed from satanic wood and flesh that launches spectral projectiles which travel a limited distance before self-destructing.
* Grim Reaper's Scythe - Unleashes horizontal spreads of energy projectiles while providing health regeneration from defeated enemies. As with projectiles thrown by the Hellmasher, the ones used by the Scythe can only travel a limited distance before self-destructing.
* The Books of Destruction serve as the game's magic system, with four books currently planned. Each book contains three distinct spells, though specific abilities remain subject to change during ongoing development.
== Enemies ==
While the final enemy roster remains in development, the completed game will feature between twelve and seventeen distinct enemy types. The upcoming demo has confirmed three enemies that players will encounter:
* Sloth: Basic zombie-like fodder enemy.
* Craver: Low-to-mid tier melee type.
* Warden: Low-tier warrior class enemy capable of both melee strikes and ranged projectile attacks.
== Levels ==
Malefact's campaign structure will consist of four episodes at launch, containing twelve levels each:
* Episode 1: The Weeping Know No Joy – Takes place within the Damnatorum and its extensive torture dungeon complexes.
* Episode 2: The Fields That Burn – Takes place on the infernal planes and in various hellish interpretations of rural landscapes and locations.
* Episode 3: No Flag Flies for the Damned – A series of heavily fortified strongholds protecting the Gate of Hell, representing the most defended territory in the infernal realm.
* Episode 4: Holocaust of the Living – Shifts the action to Earth, where Malefact unleashes destruction following his successful escape from Hell and subsequent transformation into a [[Chaos Demon]].
Additional expansion episodes may be developed following the game's release, though no official confirmation exists regarding post-launch content.
= Setting and Story =
== Plot ==
Players control Malefact, an undead serial killer condemned to eternal torment within the Damnatorum, Hell's deepest and most horrific dungeon complex reserved exclusively for the most irredeemable sinners. Prior to the game's events, Malefact receives a direct mental communication from God himself, offering unholy powers capable of facilitating escape from his prison of suffering. The divine proposition requires Malefact to wage war against Hell itself in exchange for these abilities. Despite God's acknowledgment that this path will likely result in Malefact's destruction, both parties recognize Malefact's indifference to his own fate.
The game begins with Malefact's newfound freedom and his campaign of destruction against Hell's dominion. However, God's scheme backfires spectacularly when Malefact successfully completes his rampage through Hell, escapes to Earth, and initiates Armageddon upon humanity.
== Characters ==
Malefact is currently the only confirmed named character within the game's setting, the title having been earned through infamy rather than serving as his actual identity, which remains unknown. The specifics of his backstory are shrouded in mystery, with little known beyond the fact that he lived and operated as a serial killer in mid-nineteenth-century frontier America before his damnation.
= Design =
== Music & Audio ==
Levels feature ambient drones and atmospheric textures as their baseline soundscape, similar to Doom 64 or the PlayStation version of Doom. During scripted sequences or intense combat encounters, the soundtrack may sometimes shift to include instrumental tracks and death metal riffs appropriate to the game's dark thematic elements. Certain levels, like the introductory maps and final boss encounters, exclusively use instrumental tracks.
== Visuals & Graphics ==
The game’s graphical assets are created in the same resolutions as those of its classic counterparts, with low texture resolutions by modern standards, yet without the technical color limitations that constrained developers during the 1990s. The resulting aesthetic is distinctly retro whilst simultaneously benefiting from modern technology.
Stylistically, the game’s mood is grim and gloomy, making heavy use of dark colors such as gray and black mixed with warm tones like red and orange. The game’s interpretation of hell is partly inspired by horror films such as the Hellraiser series and Event Horizon, both of which depict their own versions of hell.
= Development History =
== Early Concepts ==
Development of Malefact began in late 2023, when [[hardcore_gamer]] started assembling a team to create a horror-focused first-person shooter using the GZDoom engine. Early development faced difficulties in finding suitable talent until artist Stefan joined the project, proving exceptionally well-suited to realizing the game’s grimdark aesthetic. Other hopefuls had submitted their own attempts but were ultimately rejected for failing to meet hardcore_gamer’s creative vision. Later, hardcore_gamer founded GoreMaxxed Productions.
Original design concepts included an elaborate spell selection interface resembling a physical spellbook menu system. Complete graphics were produced for this feature before technical limitations within the UZDoom engine necessitated abandonment of the complex interface in favor of the current spellbook item implementation. The tactical pause mechanic that freezes gameplay during spell selection survived this design transition and remains a core gameplay element.
== Alpha Demo ==
The demo version scheduled for Q1 2026 will include two complete levels, several weapons from the main arsenal, three enemy types, and the first Book of Destruction. Access to the demo requires players to join the Discord server and register as beta testers.
[[Category:Game Information]]
a6bfd32777f6e3f66a2d9e61c42faafe94679721
382
381
2025-11-04T23:18:01Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{GameInfo
|title= Malefact: Evil Unchained
|image= MalefactCover.png
|Release date= Unreleased
|Engine= [[UZDoom Engine]]
|Setting/Theme= Fantasy-horror, satanic, grimdark.
|Latest Version= 0.2 (Dev Build only)
|Developer(s)= [[GoreMaxxed Productions]]
|Publisher(s)= [[GoreMaxxed Productions]]
|Mod support= Extensive; uses same tools as other UZDoom engine games
|Notable mods/total conversions=
|Official website=
|Steam page=
|GOG page=
|ModDB page=
}}
Malefact is a fantasy horror boomer shooter in development by [[GoreMaxxed Productions]]. The project is led by [[hardcore_gamer]], with a demo version expected to release in Q1 2026. The game is built on the UZDoom engine.
= Gameplay =
== Mechanics ==
The movement system in Malefact uses the same foundation as other Doom engine games but with free-mouse aiming controls in mind. In a departure from most titles in the genre, the game employs slower movement speeds and disables sprinting by default for a more immersive horror experience. Players can only achieve faster movement through temporary power-ups that boost speed for limited durations.
A central gameplay element comes in the form of the [[Books of Destruction]], magical tomes that provide access to various spells and abilities. While a book is equipped or selected, both the player character and all enemies freeze in place, creating a tactical pause system that allows for spell selection without the pressure of taking damage.
As is tradition with games of this genre, levels feature secret areas, but Malefact handles this slightly differently. Instead of marking specific areas (e.g. 'map sectors') as secrets, each level contains exactly three locked doors requiring corresponding [[Secret Key|secret keys]] hidden throughout the environment. This standardized approach means every level in the base game contains precisely three secrets, providing consistent exploration objectives across all stages. Mappers can still add secrets to their user-made levels the conventional way, however.
== Weapons ==
Malefact features an arsenal of conventional and magical weapons, complemented by the four Books of Destruction. The confirmed weapons include:
* Knife - A serial killer-esque Buck knife.
* Colt Revolver - Wild West-styled firearm available in single and dual-wielded mode.
* Sawed-off Shotgun - Wild West inspired double-barrel sawed-off shotgun.
* Stake Gun - Steampunk-inspired rapid-fire stake launcher.
* Hellmasher - A demonic club constructed from satanic wood and flesh that launches spectral projectiles which travel a limited distance before self-destructing.
* Grim Reaper's Scythe - Unleashes horizontal spreads of energy projectiles while providing health regeneration from defeated enemies. As with projectiles thrown by the Hellmasher, the ones used by the Scythe can only travel a limited distance before self-destructing.
* The Books of Destruction serve as the game's magic system, with four books currently planned. Each book contains three distinct spells, though specific abilities remain subject to change during ongoing development.
== Enemies ==
While the final enemy roster remains in development, the completed game will feature between twelve and seventeen distinct enemy types. The upcoming demo has confirmed three enemies that players will encounter:
* Sloth: Basic zombie-like fodder enemy.
* Craver: Low-to-mid tier melee type.
* Warden: Low-tier warrior class enemy capable of both melee strikes and ranged projectile attacks.
== Levels ==
Malefact's campaign structure will consist of four episodes at launch, containing twelve levels each:
* Episode 1: The Weeping Know No Joy – Takes place within the Damnatorum and its extensive torture dungeon complexes.
* Episode 2: The Fields That Burn – Takes place on the infernal planes and in various hellish interpretations of rural landscapes and locations.
* Episode 3: No Flag Flies for the Damned – A series of heavily fortified strongholds protecting the Gate of Hell, representing the most defended territory in the infernal realm.
* Episode 4: Holocaust of the Living – Shifts the action to Earth, where Malefact unleashes destruction following his successful escape from Hell and subsequent transformation into a [[Chaos Demon]].
Additional expansion episodes may be developed following the game's release, though no official confirmation exists regarding post-launch content.
= Setting and Story =
== Plot ==
Players control Malefact, an undead serial killer condemned to eternal torment within the Damnatorum, Hell's deepest and most horrific dungeon complex reserved exclusively for the most irredeemable sinners. Prior to the game's events, Malefact receives a direct mental communication from God himself, offering unholy powers capable of facilitating escape from his prison of suffering. The divine proposition requires Malefact to wage war against Hell itself in exchange for these abilities. Despite God's acknowledgment that this path will likely result in Malefact's destruction, both parties recognize Malefact's indifference to his own fate.
The game begins with Malefact's newfound freedom and his campaign of destruction against Hell's dominion. However, God's scheme backfires spectacularly when Malefact successfully completes his rampage through Hell, escapes to Earth, and initiates Armageddon upon humanity.
== Characters ==
Malefact is currently the only confirmed named character within the game's setting, the title having been earned through infamy rather than serving as his actual identity, which remains unknown. The specifics of his backstory are shrouded in mystery, with little known beyond the fact that he lived and operated as a serial killer in mid-nineteenth-century frontier America before his damnation.
= Design =
== Music & Audio ==
Levels feature ambient drones and atmospheric textures as their baseline soundscape, similar to Doom 64 or the PlayStation version of Doom. During scripted sequences or intense combat encounters, the soundtrack may sometimes shift to include instrumental tracks and death metal riffs appropriate to the game's dark thematic elements. Certain levels, like the introductory maps and final boss encounters, exclusively use instrumental tracks.
== Visuals & Graphics ==
The game’s graphical assets are created in the same resolutions as those of its classic counterparts, with low texture resolutions by modern standards, yet without the technical color limitations that constrained developers during the 1990s. The resulting aesthetic is distinctly retro whilst simultaneously benefiting from modern technology.
Stylistically, the game’s mood is grim and gloomy, making heavy use of dark colors such as gray and black mixed with warm tones like red and orange. The game’s interpretation of hell is partly inspired by horror films such as the Hellraiser series and Event Horizon, both of which depict their own versions of hell.
= Development History =
== Early Concepts ==
Development of Malefact began in late 2023, when [[hardcore_gamer]] started assembling a team to create a horror-focused first-person shooter using the GZDoom engine. Early development faced difficulties in finding suitable talent until artist Stefan joined the project, proving exceptionally well-suited to realizing the game’s grimdark aesthetic. Other hopefuls had submitted their own attempts but were ultimately rejected for failing to meet hardcore_gamer’s creative vision. Later, hardcore_gamer founded GoreMaxxed Productions.
Original design concepts included an elaborate spell selection interface resembling a physical spellbook menu system. Complete graphics were produced for this feature before technical limitations within the UZDoom engine necessitated abandonment of the complex interface in favor of the current spellbook item implementation. The tactical pause mechanic that freezes gameplay during spell selection survived this design transition and remains a core gameplay element.
== Alpha Demo ==
The demo version scheduled for Q1 2026 will include two complete levels, several weapons from the main arsenal, three enemy types, and the first Book of Destruction. Access to the demo requires players to join the Discord server and register as beta testers.
[[Category:Game Information]]
77bef51de55dea04bbce1bf1881c6c9afe14fbcd
383
382
2025-11-04T23:19:43Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{GameInfo
|title= Malefact: Evil Unchained
|image= MalefactCover.png
|Release date= Unreleased
|Engine= [[UZDoom Engine]]
|Setting/Theme= Fantasy-horror, satanic, grimdark.
|Latest Version= 0.2 (Dev Build only)
|Developer(s)= [[GoreMaxxed Productions]]
|Publisher(s)= [[GoreMaxxed Productions]]
|Mod support= Extensive; uses same tools as other UZDoom engine games
|Notable mods/total conversions=
|Official website=
|Steam page=
|GOG page=
|ModDB page=
}}
Malefact is a fantasy horror boomer shooter in development by [[GoreMaxxed Productions]]. The project is led by [[hardcore_gamer]], with a demo version expected to release in Q1 2026. The game is built on the UZDoom engine.
= Gameplay =
== Mechanics ==
The movement system in Malefact uses the same foundation as other Doom engine games but with free-mouse aiming controls in mind. In a departure from most titles in the genre, the game employs slower movement speeds and disables sprinting by default for a more immersive horror experience. Players can only achieve faster movement through temporary power-ups that boost speed for limited durations.
A central gameplay element comes in the form of the [[Books of Destruction]], magical tomes that provide access to various spells and abilities. While a book is equipped or selected, both the player character and all enemies freeze in place, creating a tactical pause system that allows for spell selection without the pressure of taking damage.
As is tradition with games of this genre, levels feature secret areas, but Malefact handles this slightly differently. Instead of marking specific areas (e.g. 'map sectors') as secrets, each level contains exactly three locked doors requiring corresponding [[Secret Key|secret keys]] hidden throughout the environment. This standardized approach means every level in the base game contains precisely three secrets, providing consistent exploration objectives across all stages. Mappers can still add secrets to their user-made levels the conventional way, however.
== Weapons ==
Malefact features an arsenal of conventional and magical weapons, complemented by the four Books of Destruction. The confirmed weapons include:
* Knife - A serial killer-esque Buck knife.
* Colt Revolver - Wild West-styled firearm available in single and dual-wielded mode.
* Sawed-off Shotgun - Wild West inspired double-barrel sawed-off shotgun.
* Stake Gun - Steampunk-inspired rapid-fire stake launcher.
* Hellmasher - A demonic club constructed from satanic wood and flesh that launches spectral projectiles which travel a limited distance before self-destructing.
* Grim Reaper's Scythe - Unleashes horizontal spreads of energy projectiles while providing health regeneration from defeated enemies. As with projectiles thrown by the Hellmasher, the ones used by the Scythe can only travel a limited distance before self-destructing.
* The Books of Destruction serve as the game's magic system, with four books currently planned. Each book contains three distinct spells, though specific abilities remain subject to change during ongoing development.
== Enemies ==
While the final enemy roster remains in development, the completed game will feature between twelve and seventeen distinct enemy types. The upcoming demo has confirmed three enemies that players will encounter:
* Sloth: Basic zombie-like fodder enemy.
* Craver: Low-to-mid tier melee type.
* Warden: Low-tier warrior class enemy capable of both melee strikes and ranged projectile attacks.
== Levels ==
Malefact's campaign structure will consist of four episodes at launch, containing twelve levels each:
* Episode 1: The Weeping Know No Joy – Takes place within the Damnatorum and its extensive torture dungeon complexes.
* Episode 2: The Fields That Burn – Takes place on the infernal planes and in various hellish interpretations of rural landscapes and locations.
* Episode 3: No Flag Flies for the Damned – A series of heavily fortified strongholds protecting the Gate of Hell, representing the most defended territory in the infernal realm.
* Episode 4: Holocaust of the Living – Shifts the action to Earth, where Malefact unleashes destruction following his successful escape from Hell and subsequent transformation into a [[Chaos Demon]].
Additional expansion episodes may be developed following the game's release, though no official confirmation exists regarding post-launch content.
= Setting and Story =
== Plot ==
Players control Malefact, an undead serial killer condemned to eternal torment within the Damnatorum, Hell's deepest and most horrific dungeon complex reserved exclusively for the most irredeemable sinners. Prior to the game's events, Malefact receives a direct mental communication from God himself, offering unholy powers capable of facilitating escape from his prison of suffering. The divine proposition requires Malefact to wage war against Hell itself in exchange for these abilities. Despite God's acknowledgment that this path will likely result in Malefact's destruction, both parties recognize Malefact's indifference to his own fate.
The game begins with Malefact's newfound freedom and his campaign of destruction against Hell's dominion. However, God's scheme backfires spectacularly when Malefact successfully completes his rampage through Hell, escapes to Earth, and initiates Armageddon upon humanity.
== Characters ==
Malefact is currently the only confirmed named character within the game's setting, the title having been earned through infamy rather than serving as his actual identity, which remains unknown. The specifics of his backstory are shrouded in mystery, with little known beyond the fact that he lived and operated as a serial killer in mid-nineteenth-century frontier America before his damnation.
= Design =
== Music & Audio ==
Levels feature ambient drones and atmospheric textures as their baseline soundscape, similar to Doom 64 or the PlayStation version of Doom. During scripted sequences or intense combat encounters, the soundtrack may sometimes shift to include instrumental tracks and death metal riffs appropriate to the game's dark thematic elements. Certain levels, like the introductory maps and final boss encounters, exclusively use instrumental tracks.
== Visuals & Graphics ==
The game’s graphical assets are created in the same resolutions as those of its classic counterparts, with low texture resolutions by modern standards, yet without the technical color limitations that constrained developers during the 1990s. The resulting aesthetic is distinctly retro whilst simultaneously benefiting from modern technology.
Stylistically, the game’s mood is grim and gloomy, making heavy use of dark colors such as gray and black mixed with warm tones like red and orange. The game’s interpretation of hell is partly inspired by horror films such as the Hellraiser series and Event Horizon, both of which depict their own versions of hell.
= Development History =
== Early Concepts ==
Development of Malefact began in late 2023, when [[hardcore_gamer]] started assembling a team to create a horror-focused first-person shooter using the GZDoom engine. Early development faced difficulties in finding suitable talent until artist Stefan joined the project, proving exceptionally well-suited to realizing the game’s grimdark aesthetic. Other hopefuls had submitted their own attempts but were ultimately rejected for failing to meet hardcore_gamer’s creative vision. Later, hardcore_gamer founded [[GoreMaxxed Productions]].
Original design concepts included an elaborate spell selection interface resembling a physical spellbook menu system. Complete graphics were produced for this feature before technical limitations within the UZDoom engine necessitated abandonment of the complex interface in favor of the current spellbook item implementation. The tactical pause mechanic that freezes gameplay during spell selection survived this design transition and remains a core gameplay element.
== Alpha Demo ==
The demo version scheduled for Q1 2026 will include two complete levels, several weapons from the main arsenal, three enemy types, and the first Book of Destruction. Access to the demo requires players to join the Discord server and register as beta testers.
[[Category:Game Information]]
ab691c348302b5304524566ccff75c605add31bd
File:Site-logo.png
6
288
384
314
2025-11-05T15:12:37Z
MasterOfDisillusionment
431405
MasterOfDisillusionment uploaded a new version of [[File:Site-logo.png]]
wikitext
text/x-wiki
== Summary ==
Banner graphic for the hardcoredoom wiki.
== Licensing ==
{{License|permission}}
38ac3a0d2287df992c8ef6c6f21107aa4b5a0639
Category:Tutorials And Guides
14
293
385
332
2025-11-05T20:55:15Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
If you're a newcomer to modding or mapping using the UZDoom engine, this page contains useful resources for getting started.
= Level Editing =
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category 1 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category 2 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= ZScript & Coding =
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category 1 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category 2 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= Third Party Guides & Tutorials =
== Level Editing & Scripting ==
Note: While Doom Builder 2 is considered defunct in favor of Ultimate Doom Builder, most general functionality carries over. Just keep in mind that there may be some minor differences when watching older tutorial videos.
* [[https://youtube.com/playlist?list=PLQrQ055Wd7p77pBCmTQT6kW-K8Plmw_D-&si=DHhSQQcJ3iT16Czj| Ultimate Doombuilder Tutorials by Bridgeburner]]
* [[https://youtube.com/playlist?list=PLCE835098C82D8F24&si=c3VJyO7010AW0_2Z| Doombuilder 2 Tutorials by Chubzdoomer]]
* [[https://youtube.com/playlist?list=PLuDCrjOek9njK8hXkZmTxaU8PWzjzGql7&si=5R5NcyAeidk4GPjz| ZDoom ACS Scripting Tutorials by Chubzdoomer]]
* [[https://youtube.com/playlist?list=PL-36gm0W-VKl89pw9lUfF36TJ28bjrNUn&si=H8rclwM8wWbkBw8g| GZDoom Zscript Tutorials by DavidXNewton]]
99ef87bc9ae5dfaac424a065ddf0deb8c8d998e1
386
385
2025-11-05T20:56:22Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
If you're a newcomer to modding or mapping using the UZDoom engine, this page contains useful resources for getting started.
= Level Editing =
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category 1 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category 2 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= ZScript & Coding =
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category 1 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category 2 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= Third Party Guides & Tutorials =
== Level Editing & Scripting ==
Note: While Doom Builder 2 is considered defunct in favor of Ultimate Doom Builder, most general functionality carries over. Just keep in mind that there may be some minor differences when watching older tutorial videos.
* [[https://youtube.com/playlist?list=PLQrQ055Wd7p77pBCmTQT6kW-K8Plmw_D-&si=DHhSQQcJ3iT16Czj| Ultimate Doombuilder Tutorials by Bridgeburner]]
* [[https://youtube.com/playlist?list=PLCE835098C82D8F24&si=c3VJyO7010AW0_2Z| Doombuilder 2 Tutorials by Chubzdoomer]]
* [[https://youtube.com/playlist?list=PLuDCrjOek9njK8hXkZmTxaU8PWzjzGql7&si=5R5NcyAeidk4GPjz| ZDoom ACS Scripting Tutorials by Chubzdoomer]]
* [[https://youtube.com/playlist?list=PL-36gm0W-VKl89pw9lUfF36TJ28bjrNUn&si=H8rclwM8wWbkBw8g| GZDoom Zscript Tutorials by DavidXNewton]]
[[Category:Tutorials And Guides]]
614fa0e7b675c10b2b669077d9fe90dc262b335f
Category:Boom Tropes
14
294
387
326
2025-11-05T20:57:12Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Boom Tropes is an archive of recurring design elements, level setups, and architecture patterns found in classic FPS games and their mods. Besides being fun to browse, the tropes can also be a potentially useful source of inspiration for level designers since these tropes can be easily incorporated into their own designs.
= Geometry =
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= Detailing =
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= Encounter Design =
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
[[Category:Boom Tropes]]
c7c6b513cbb32c0825bf2d9171c2455b4b2619b6
388
387
2025-11-05T20:58:52Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Boom Tropes is an archive of recurring design elements, level setups, and architecture patterns found in classic FPS games and their mods. Besides being fun to browse, the tropes can also be a potentially useful source of inspiration for level designers since these tropes can be easily incorporated into their own designs.
= Geometry =
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Section 1 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= Detailing =
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Section 1 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= Encounter Design =
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Section 1 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
[[Category:Boom Tropes]]
816f10499f84a19cf647ff716e2797a342b36b76
390
388
2025-11-05T21:13:38Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Boom Tropes is an archive of recurring design elements, level setups, and architecture patterns found in classic FPS games and their mods. Besides being fun to browse, the tropes can also be a potentially useful source of inspiration for level designers since these tropes can be easily incorporated into their own designs.
= Gameplay =
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Encounter Design ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Layouts & Progression ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Item Placement ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Interactives ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= Geometry =
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Section 1 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= Detailing =
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Section 1 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
[[Category:Boom Tropes]]
36a53678db805b2bb000d9668c53aac3b0c63d6b
391
390
2025-11-05T21:54:47Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Boom Tropes is an archive of recurring design elements, level setups, and architecture patterns found in classic FPS games and their mods. Besides being fun to browse, the tropes can also be a potentially useful source of inspiration for level designers since these tropes can be easily incorporated into their own designs.
= Gameplay =
Tropes related to level layout, mechanics, challenges and encounters, puzzles, player choices. etc.
== Encounter Design ==
Tropes related monster placement and arena design.
=== Incidental ===
Straightforward monster placement that doesn't require elaborate setups.
* [[Idle Monster]]: A monster that remains inactive until triggered by the player.
* [[Door Ambush]]: A monster that waits behind a door.
* [[Lift Ambush]]: A monster that waits on top of a platform or lift.
=== Monster Closets & Traps ===
More complex encounters involving triggers or scripts.
* [[Dropwall Trap]]: A wall or section of a wall that lowers vertically to reveal a new area with an enemy or multiple enemies.
* Item 2
== Layouts & Progression ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Item Placement ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Interactives ==
Gameplay tropes involving interactive elements, like doors, switches, teleporters, etc.
= Geometry =
== Section 1 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= Detailing =
Tropes related to the process of adding visual elements that enhance realism and atmosphere without altering the gameplay structure go here.
== Geometric ==
Map/Level Detail created through level geometry.
* Item 1
* Item 2
== Props & Greeble ==
Map/Level Detail created through placeable props and actors.
* Item 1
* Item 2
[[Category:Boom Tropes]]
46e1388ab06223bfe6ad053453996f1b91056b1d
392
391
2025-11-05T21:58:50Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Boom Tropes is an archive of recurring design elements, level setups, and architecture patterns found in classic FPS games and their mods. Besides being fun to browse, the tropes can also be a potentially useful source of inspiration for level designers since these tropes can be easily incorporated into their own designs.
= Gameplay =
Tropes related to level layout, mechanics, challenges and encounters, puzzles, player choices. etc.
== Encounter Design ==
Tropes related monster placement and arena design.
=== Incidental ===
Straightforward monster placement that doesn't require elaborate setups.
* [[Idle Monster]]: A monster that remains inactive until triggered by the player.
* [[Door Ambush]]: A monster that waits behind a door.
* [[Lift Ambush]]: A monster that waits on top of a platform or lift.
=== Monster Closets & Traps ===
More complex encounters involving triggers or scripts.
* [[Dropwall Trap]]: A wall or section of a wall that lowers vertically to reveal a new area with an enemy or multiple enemies.
* Item 2
== Layouts & Progression ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Item Placement ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Interactives ==
Gameplay tropes involving interactive elements, like doors, switches, teleporters, etc.
= Geometry =
== Section 1 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= Detailing =
Tropes related to the process of adding visual elements that enhance realism and atmosphere without altering the gameplay structure go here.
== Geometric ==
Map/Level Detail created through level geometry.
* Item 1
* Item 2
== Props & Greeble ==
Map/Level Detail created through placeable props and actors.
* [[Crates & Barrels]]: Storage containers, usually made from wood or alloy.
* Item 2
[[Category:Boom Tropes]]
f6f00da22a6f7eaf8d7d98c872c085dffd01caa7
396
392
2025-11-05T22:13:47Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Boom Tropes is an archive of recurring design elements, level setups, and architecture patterns found in classic FPS games and their mods. Besides being fun to browse, the tropes can also be a potentially useful source of inspiration for level designers since these tropes can be easily incorporated into their own designs.
= Gameplay =
Tropes related to level layout, mechanics, challenges and encounters, puzzles, player choices. etc.
== Encounter Design ==
Tropes related monster placement and arena design.
=== Incidental ===
Straightforward monster placement that doesn't require elaborate setups.
* [[Idle Monster]]: A monster that remains inactive until triggered by the player.
* [[Door Ambush]]: A monster that waits behind a door.
* [[Lift Ambush]]: A monster that waits on top of a platform or lift.
=== Monster Closets & Traps ===
More complex encounters involving triggers or scripts.
* [[Dropwall Trap]]: A wall or section of a wall that lowers vertically to reveal a new area with an enemy or multiple enemies.
* Item 2
== Layouts & Progression ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Item Placement ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Interactives ==
Gameplay tropes involving interactive elements, like doors, switches, teleporters, etc.
= Geometry =
== Section 1 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= Detailing =
Tropes related to the process of adding visual elements that enhance realism and atmosphere without altering the gameplay structure go here.
== Geometric ==
Map/Level Detail created through level geometry.
* Item 1
* Item 2
== Props & Greeble ==
Map/Level Detail created through placeable props and actors.
* [[Crates And Barrels]]: Storage containers, usually made from wood or alloy.
* Item 2
[[Category:Boom Tropes]]
342e040ea9bccd7e33c5438d15e7550e07d06d7c
Category:Mods And Assets
14
292
389
321
2025-11-05T20:59:04Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Pages related to user created mods, TCs, and game assets belong here.
= Mods =
Mods modify the gameplay of a game and optionally contain new levels and or game assets.
== Mod 1 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Mod 2 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= Assets =
Assets are used to expand the base game via addition graphics, sound, code, etc.
== Assets 1 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Assets 2 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
[[Category:Mods And Assets]]
8abfad2906aaac358584d6aa0106a922ef72f0ca
Crates And Barrels Detail
0
310
393
2025-11-05T22:13:07Z
MasterOfDisillusionment
431405
Created page with "Crates and barrels are storage containers, usually made from wood or metal alloys. The simplicity of these props makes them extremely common not only in shooters but in video games in general, as they provide an easy way to add some greeble to a scene. However, they can also feel like lazy detailing if overused. They are more common in industrial settings. Although crates are considered a prop or greeble trope, it is possible to create them through level geometry, though..."
wikitext
text/x-wiki
Crates and barrels are storage containers, usually made from wood or metal alloys. The simplicity of these props makes them extremely common not only in shooters but in video games in general, as they provide an easy way to add some greeble to a scene. However, they can also feel like lazy detailing if overused. They are more common in industrial settings. Although crates are considered a prop or greeble trope, it is possible to create them through level geometry, though sprites are often used for their simplicity. This depends on the game and the level designer's goals.
= Types & Variants =
== Static ==
Purely part of the scenery and cannot be damaged or interacted with. These are often made from geometry, though some games may use models or sprites.
== Destructible ==
Has its own health pool and can be destroyed when it reaches zero. Depending on the game, there may be multiple states depicting various levels of damage, or it may simply be destroyed outright when its HP reaches zero.
== Lootable ==
Can be opened or destroyed to reveal items or pickups. These are less common in classic games, though many user-made mods include them.
== Explosive ==
High-explosive boxes and barrels that blow up when destroyed, dealing damage to nearby actors. These are often colored differently (e.g. red) to call attention to their hazardous nature, but this is not universal.
[[Category:Boom Tropes]]
6be009eb15ff3dfa239c6af3d0ea41d3e740b9de
394
393
2025-11-05T22:13:29Z
MasterOfDisillusionment
431405
MasterOfDisillusionment renamed page [[Crates & Barrels]] to [[Crates And Barrels]]: Misspelled title
wikitext
text/x-wiki
Crates and barrels are storage containers, usually made from wood or metal alloys. The simplicity of these props makes them extremely common not only in shooters but in video games in general, as they provide an easy way to add some greeble to a scene. However, they can also feel like lazy detailing if overused. They are more common in industrial settings. Although crates are considered a prop or greeble trope, it is possible to create them through level geometry, though sprites are often used for their simplicity. This depends on the game and the level designer's goals.
= Types & Variants =
== Static ==
Purely part of the scenery and cannot be damaged or interacted with. These are often made from geometry, though some games may use models or sprites.
== Destructible ==
Has its own health pool and can be destroyed when it reaches zero. Depending on the game, there may be multiple states depicting various levels of damage, or it may simply be destroyed outright when its HP reaches zero.
== Lootable ==
Can be opened or destroyed to reveal items or pickups. These are less common in classic games, though many user-made mods include them.
== Explosive ==
High-explosive boxes and barrels that blow up when destroyed, dealing damage to nearby actors. These are often colored differently (e.g. red) to call attention to their hazardous nature, but this is not universal.
[[Category:Boom Tropes]]
6be009eb15ff3dfa239c6af3d0ea41d3e740b9de
399
394
2025-11-05T22:20:18Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Crates and barrels are storage containers, usually made from wood or metal alloys. The simplicity of these props makes them extremely common not only in shooters but in video games in general, as they provide an easy way to add some greeble to a scene. However, they can also feel like lazy detailing if overused. They are more common in industrial settings. Although crates are considered a prop or greeble trope, it is possible to create them through level geometry, though sprites are often used for their simplicity. This depends on the game and the level designer's goals.
= Types & Variants =
== Static ==
Purely part of the scenery and cannot be damaged or interacted with. These are often made from geometry, though some games may use models or sprites.
== Destructible ==
Has its own health pool and can be destroyed when it reaches zero. Depending on the game, there may be multiple states depicting various levels of damage, or it may simply be destroyed outright when its HP reaches zero.
== Lootable ==
Can be opened or destroyed to reveal items or pickups. These are less common in classic games, though many user-made mods include them.
== Explosive ==
High-explosive boxes and barrels that blow up when destroyed, dealing damage to nearby actors. These are often colored differently (e.g. red) to call attention to their hazardous nature, but this is not universal.
= Image Examples =
<gallery>
TropeBarrels.png| Sprites for Wooden barrels - Source: Heretic's E1M1
TropeCrates.jpg| Crates created from level Geometry - Source: Ultimate Doom's E2M2
</gallery>
[[Category:Boom Tropes]]
c187e5aad0395b0faf600c8ae107313345107ccd
400
399
2025-11-05T22:33:58Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Crates and barrels are storage containers, usually made from wood or metal alloys. The simplicity of these props makes them extremely common, as they provide an easy way to add greeble to a scene. However, they can also feel like lazy detailing if overused. They are more common in industrial settings. Although crates are considered a prop or greeble trope, it is possible to create them through level geometry, though sprites are often used for their simplicity. This depends on the game and the level designer's goals.
= Types & Variants =
== Static ==
Purely part of the scenery and cannot be damaged or interacted with. These are often made from geometry, though some games may use models or sprites.
== Destructible ==
Has its own health pool and can be destroyed when it reaches zero. Depending on the game, there may be multiple states depicting various levels of damage, or it may simply be destroyed outright when its HP reaches zero.
== Lootable ==
Can be opened or destroyed to reveal items or pickups. These are less common in classic games, though many user-made mods include them.
== Explosive ==
High-explosive boxes and barrels that blow up when destroyed, dealing damage to nearby actors. These are often colored differently (e.g. red) to call attention to their hazardous nature, but this is not universal.
= Image Examples =
<gallery>
TropeBarrels.png| Sprites for Wooden barrels - Source: Heretic's E1M1
TropeCrates.jpg| Crates created from level Geometry - Source: Ultimate Doom's E2M2
</gallery>
[[Category:Boom Tropes]]
72ee8f0bffffd47802d71a16887c41a794878261
Crates & Barrels
0
311
395
2025-11-05T22:13:29Z
MasterOfDisillusionment
431405
MasterOfDisillusionment renamed page [[Crates & Barrels]] to [[Crates And Barrels]]: Misspelled title
wikitext
text/x-wiki
#REDIRECT [[Crates And Barrels]]
b0877a1d96cbce590ba28e543292469711ec7511
File:TropeCrates.jpg
6
312
397
2025-11-05T22:15:36Z
MasterOfDisillusionment
431405
Image example of the crates trope.
wikitext
text/x-wiki
== Summary ==
Image example of the crates trope.
== Licensing ==
{{License|fairuse}}
826cb241089a16ce26ec656ffeea42d47071c021
File:TropeBarrels.png
6
313
398
2025-11-05T22:16:57Z
MasterOfDisillusionment
431405
Image example of the Barrel trope.
wikitext
text/x-wiki
== Summary ==
Image example of the Barrel trope.
== Licensing ==
{{License|fairuse}}
0dab354bcd4cd9132c0c11689f8295e85c94086b
Category:Boom Tropes
14
294
401
396
2025-11-05T22:53:16Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Boom Tropes is an archive of recurring design elements, level setups, and architecture patterns found in classic FPS games and their mods. Besides being fun to browse, the tropes can also be a potentially useful source of inspiration for level designers since these tropes can be easily incorporated into their own designs.
= Gameplay =
Tropes related to level layout, mechanics, challenges and encounters, puzzles, player choices. etc.
== Encounter Design ==
Tropes related monster placement and arena design.
=== Incidental ===
Straightforward monster placement that doesn't require elaborate setups.
* [[Idle Monster]]: A monster that remains inactive until triggered by the player.
* [[Door Ambush]]: A monster that waits behind a door.
* [[Lift Ambush]]: A monster that waits on top of a platform or lift.
=== Monster Closets & Traps ===
More complex encounters involving triggers or scripts.
* [[Dropwall Trap]]: A wall or section of a wall that lowers vertically to reveal a new area with an enemy or multiple enemies.
* Item 2
== Layouts ==
Tropes related to layouts and area design.
=== Map Layouts ===
How maps are organized as a whole.
* Item 1
* Item 2
=== Room Layouts ===
Layouts for individual areas within a map.
* Item 1
* Item 2
== Item Placement ==
Tropes relating to item placement.
=
* Item 1
* Item 2
== Interactives ==
Gameplay tropes involving interactive elements, like doors, switches, teleporters, etc.
= Locations & Themes =
Common settings and locations of levels.
== Settings ==
* Item 1
* Item 2
== Locations ==
* Item 1
* Item 2
== Section 1 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= Detailing =
Tropes related to the process of adding visual elements that enhance realism and atmosphere without altering the gameplay structure go here.
== Geometric ==
Map/Level Detail created through level geometry.
* Item 1
* Item 2
== Props & Greeble ==
Map/Level Detail created through placeable props and actors.
* [[Crates And Barrels]]: Storage containers, usually made from wood or alloy.
* Item 2
[[Category:Boom Tropes]]
7aed20c6ea3c72518109a0c3d87df85e80accd45
402
401
2025-11-05T23:19:49Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Boom Tropes is an archive of recurring design elements, level setups, and architecture patterns found in classic FPS games and their mods. Besides being fun to browse, the tropes can also be a potentially useful source of inspiration for level designers since these tropes can be easily incorporated into their own designs.
= Gameplay =
Tropes related to level layout, mechanics, challenges and encounters, puzzles, player choices. etc.
== Encounter Design ==
Tropes related monster placement and encounters.
=== Incidental ===
Straightforward monster placement that doesn't require elaborate setups.
* [[Idle Monster]]: A monster that remains inactive until it sees the player.
* [[Door Ambush]]: A monster that waits behind a door.
* [[Lift Ambush]]: A monster that waits on top of a platform or lift.
* [[Turret Monster]]: A projectile or hitscan monster that’s nested onto an elevated space or platform.
* [[Alerted Monster]]: Like an idle monster except it’s not deaf; it can be awoken by player’s gunfire without a direct line of sight.
=== Monster Closets & Traps ===
More complex encounters involving triggers or scripts.
* [[Dropwall Trap]]: A wall or section of a wall that lowers vertically to reveal a new area with an enemy or multiple enemies.
* Item 2
== Layouts ==
Tropes related to map layouts and area design.
=== Map Layouts ===
How maps are organized as a whole.
* Item 1
* Item 2
=== Room Layouts & Geometry ===
How areas within a map are constructed.
* Item 1
* Item 2
== Item Placement ==
Tropes relating to item placement.
=
* Item 1
* Item 2
== Interactives ==
Gameplay tropes involving interactive elements, like doors, switches, teleporters, etc.
= Locations & Themes =
Common settings and locations of levels.
== Settings ==
* Item 1
* Item 2
== Locations ==
* Item 1
* Item 2
== Section 1 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= Detailing =
Tropes related to the process of adding visual elements that enhance realism and atmosphere without altering the gameplay structure go here.
== Geometric ==
Map/Level Detail created through level geometry.
* Item 1
* Item 2
== Props & Greeble ==
Map/Level Detail created through placeable props and actors.
* [[Crates And Barrels]]: Storage containers, usually made from wood or alloy.
* Item 2
[[Category:Boom Tropes]]
f81a3458146e99e52878efaa268ea0a107d9c92e
403
402
2025-11-05T23:21:12Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Boom Tropes is an archive of recurring design elements, level setups, and architecture patterns found in classic FPS games and their mods. Besides being fun to browse, the tropes can also be a potentially useful source of inspiration for level designers since these tropes can be easily incorporated into their own designs.
= Gameplay =
== Encounter Design ==
Tropes related monster placement and encounters.
=== Incidental ===
Straightforward monster placement that doesn't require elaborate setups.
* [[Idle Monster]]: A monster that remains inactive until it sees the player.
* [[Door Ambush]]: A monster that waits behind a door.
* [[Lift Ambush]]: A monster that waits on top of a platform or lift.
* [[Turret Monster]]: A projectile or hitscan monster that’s nested onto an elevated space or platform.
* [[Alerted Monster]]: Like an idle monster except it’s not deaf; it can be awoken by player’s gunfire without a direct line of sight.
=== Monster Closets & Traps ===
More complex encounters involving triggers or scripts.
* [[Dropwall Trap]]: A wall or section of a wall that lowers vertically to reveal a new area with an enemy or multiple enemies.
* Item 2
== Layouts ==
Tropes related to map layouts and area design.
=== Map Layouts ===
How maps are organized as a whole.
* Item 1
* Item 2
=== Room Layouts & Geometry ===
How areas within a map are constructed.
* Item 1
* Item 2
== Item Placement ==
Tropes relating to item placement.
=
* Item 1
* Item 2
== Interactives ==
Gameplay tropes involving interactive elements, like doors, switches, teleporters, etc.
= Locations & Themes =
Common settings and locations of levels.
== Settings ==
* Item 1
* Item 2
== Locations ==
* Item 1
* Item 2
== Section 1 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= Detailing =
Tropes related to the process of adding visual elements that enhance realism and atmosphere without altering the gameplay structure go here.
== Geometric ==
Map/Level Detail created through level geometry.
* Item 1
* Item 2
== Props & Greeble ==
Map/Level Detail created through placeable props and actors.
* [[Crates And Barrels]]: Storage containers, usually made from wood or alloy.
* Item 2
[[Category:Boom Tropes]]
15372c744e1ba2bd40c0d66f39496c6b4a14729d
404
403
2025-11-05T23:45:21Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Boom Tropes is an archive of recurring design elements, level setups, and architecture patterns found in classic FPS games and their mods. Besides being fun to browse, the tropes can also be a potentially useful source of inspiration for level designers since these tropes can be easily incorporated into their own designs.
= Gameplay =
== Encounter Design ==
Tropes related monster placement and encounters.
=== Incidental ===
Straightforward monster placement that doesn't require elaborate setups.
* [[Idle Monster]]: A monster that remains inactive until it sees the player.
* [[Door Ambush]]: A monster that waits behind a door.
* [[Lift Ambush]]: A monster that waits on top of a platform or lift.
* [[Turret Monster]]: A projectile or hitscan monster that’s nested onto an elevated space or platform.
* [[Alerted Monster]]: Like an idle monster except it’s not deaf; it can be awoken by player’s gunfire without a direct line of sight.
=== Monster Closets & Traps ===
More complex encounters involving triggers or scripts.
* [[Dropwall Trap]]: A wall or section of a wall that lowers vertically to reveal a new area with an enemy or multiple enemies.
* Item 2
== Layouts & Geometry ==
Tropes related to map layouts and area design.
=== Map Layouts ===
How maps are organized as a whole.
* Item 1
* Item 2
=== Room Modules ===
The types of areas commonly used in maps.
* [[Hub]]: An area with three or more entry points.
* [[Dead-end]]: An area with a single entry point.
* [[Corridor]]: An area with two entry points.
* [[Couplers]]: Small connector spaces used to bridge areas
== Item Placement ==
Tropes relating to item placement.
=
* Item 1
* Item 2
== Interactives ==
Gameplay tropes involving interactive elements, like doors, switches, teleporters, etc.
= Locations & Themes =
Common settings and locations of levels.
== Settings ==
* Item 1
* Item 2
== Locations ==
* Item 1
* Item 2
== Section 1 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= Detailing =
Tropes related to the process of adding visual elements that enhance realism and atmosphere without altering the gameplay structure go here.
== Geometric ==
Map/Level Detail created through level geometry.
* Item 1
* Item 2
== Props & Greeble ==
Map/Level Detail created through placeable props and actors.
* [[Crates And Barrels]]: Storage containers, usually made from wood or alloy.
* Item 2
[[Category:Boom Tropes]]
a9d8146a5700d5f5ca2e2039d5524465c2bc8091
425
404
2025-11-08T15:09:18Z
MasterOfDisillusionment
431405
Replaced content with " [[Category:Boom Tropes]]"
wikitext
text/x-wiki
[[Category:Boom Tropes]]
055a17c9e7641c544532fe0c7534c4fdfc4e76d4
Category:Tutorials And Guides
14
293
405
386
2025-11-06T22:30:11Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
If you're a newcomer to modding or mapping using the UZDoom engine, this page contains useful resources for getting started.
= Guides & Tutorials =
Guides created by our own community.
== [[Mapping for Malefact]] ==
A level design guide for Malefact, geared toward newcomers to the game, written by the game's lead developer and level designer.
== Sub-Category 2 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= ZScript & Coding =
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category 1 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category 2 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= Third Party Guides & Tutorials =
== Level Editing & Scripting ==
Guides created outside our community.
Note: While Doom Builder 2 is considered defunct in favor of Ultimate Doom Builder, most general functionality carries over. Just keep in mind that there may be some minor differences when watching older tutorial videos.
* [[https://youtube.com/playlist?list=PLQrQ055Wd7p77pBCmTQT6kW-K8Plmw_D-&si=DHhSQQcJ3iT16Czj| Ultimate Doombuilder Tutorials by Bridgeburner]]
* [[https://youtube.com/playlist?list=PLCE835098C82D8F24&si=c3VJyO7010AW0_2Z| Doombuilder 2 Tutorials by Chubzdoomer]]
* [[https://youtube.com/playlist?list=PLuDCrjOek9njK8hXkZmTxaU8PWzjzGql7&si=5R5NcyAeidk4GPjz| ZDoom ACS Scripting Tutorials by Chubzdoomer]]
* [[https://youtube.com/playlist?list=PL-36gm0W-VKl89pw9lUfF36TJ28bjrNUn&si=H8rclwM8wWbkBw8g| GZDoom Zscript Tutorials by DavidXNewton]]
[[Category:Tutorials And Guides]]
2bffcb9f0ef66c28d74c3eb7abffc41f5d8a53b5
406
405
2025-11-06T22:31:21Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
If you're a newcomer to modding or mapping using the UZDoom engine, this page contains useful resources for getting started.
= Guides & Tutorials =
Guides created by our own community.
== [[Malefact Mapping 101]] ==
A level design guide for Malefact, geared toward newcomers to the game, written by the game's lead developer and level designer.
== Sub-Category 2 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= ZScript & Coding =
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category 1 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category 2 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= Third Party Guides & Tutorials =
== Level Editing & Scripting ==
Guides created outside our community.
Note: While Doom Builder 2 is considered defunct in favor of Ultimate Doom Builder, most general functionality carries over. Just keep in mind that there may be some minor differences when watching older tutorial videos.
* [[https://youtube.com/playlist?list=PLQrQ055Wd7p77pBCmTQT6kW-K8Plmw_D-&si=DHhSQQcJ3iT16Czj| Ultimate Doombuilder Tutorials by Bridgeburner]]
* [[https://youtube.com/playlist?list=PLCE835098C82D8F24&si=c3VJyO7010AW0_2Z| Doombuilder 2 Tutorials by Chubzdoomer]]
* [[https://youtube.com/playlist?list=PLuDCrjOek9njK8hXkZmTxaU8PWzjzGql7&si=5R5NcyAeidk4GPjz| ZDoom ACS Scripting Tutorials by Chubzdoomer]]
* [[https://youtube.com/playlist?list=PL-36gm0W-VKl89pw9lUfF36TJ28bjrNUn&si=H8rclwM8wWbkBw8g| GZDoom Zscript Tutorials by DavidXNewton]]
[[Category:Tutorials And Guides]]
ed280e312f970ca1c1f19f192e86f315a4b9e447
407
406
2025-11-06T22:31:56Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
If you're a newcomer to modding or mapping using the UZDoom engine, this page contains useful resources for getting started.
= Guides & Tutorials =
Guides created by our own community.
== [[Malefact Mapping Tutorials]] ==
A level design guide for Malefact, geared toward newcomers to the game, written by the game's lead developer and level designer.
== Sub-Category 2 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= ZScript & Coding =
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category 1 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Sub-Category 2 ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
= Third Party Guides & Tutorials =
== Level Editing & Scripting ==
Guides created outside our community.
Note: While Doom Builder 2 is considered defunct in favor of Ultimate Doom Builder, most general functionality carries over. Just keep in mind that there may be some minor differences when watching older tutorial videos.
* [[https://youtube.com/playlist?list=PLQrQ055Wd7p77pBCmTQT6kW-K8Plmw_D-&si=DHhSQQcJ3iT16Czj| Ultimate Doombuilder Tutorials by Bridgeburner]]
* [[https://youtube.com/playlist?list=PLCE835098C82D8F24&si=c3VJyO7010AW0_2Z| Doombuilder 2 Tutorials by Chubzdoomer]]
* [[https://youtube.com/playlist?list=PLuDCrjOek9njK8hXkZmTxaU8PWzjzGql7&si=5R5NcyAeidk4GPjz| ZDoom ACS Scripting Tutorials by Chubzdoomer]]
* [[https://youtube.com/playlist?list=PL-36gm0W-VKl89pw9lUfF36TJ28bjrNUn&si=H8rclwM8wWbkBw8g| GZDoom Zscript Tutorials by DavidXNewton]]
[[Category:Tutorials And Guides]]
04ef55c8758dc10f1f249a2a5938ffb8090a2d7b
422
407
2025-11-08T15:05:51Z
MasterOfDisillusionment
431405
Replaced content with " [[Category:Tutorials And Guides]]"
wikitext
text/x-wiki
[[Category:Tutorials And Guides]]
e6aea71025500896c2384fd32b0dce6c4390df7f
Malefact Mapping Tutorials
0
314
408
2025-11-06T22:36:47Z
MasterOfDisillusionment
431405
Created page with "This level design guide was written to ease newcomers to Malefact mapping into the process. If you wish to create your own levels for the game, it’s strongly recommended you give them a glance, even if only for those sections covering functionality that is unique to Malefact. Note: The tutorials on this page were written by Malefact’s lead developer and level designer and are thus protected. If you’d like to add your own tutorials or link to those created by othe..."
wikitext
text/x-wiki
This level design guide was written to ease newcomers to Malefact mapping into the process. If you wish to create your own levels for the game, it’s strongly recommended you give them a glance, even if only for those sections covering functionality that is unique to Malefact.
Note: The tutorials on this page were written by Malefact’s lead developer and level designer and are thus protected. If you’d like to add your own tutorials or link to those created by others, you can do so on the main tutorial category page.
= Table of Contents =
== Beginner ==
* Installing Prerequisites
* Sector Creation
* Texturing
* Lighting
* Sector Effects
* Actor Placement
* Linedef Triggers & Interactive Elements
* Ending Your Map
* MAPINFO Definition
== Advanced ==
* Scrolling Surfaces
* Slopes & Arches
* 3D Sectors & Liquids
* Patrolling Monsters & Hazards
* ACS Scripting
* Hub Maps
* Ambient Sounds
== Design Theory ==
* Pre-Planning
* Area Modules
* Monster Closets & Traps
* Encounter Design & Pacing
d97de9b0c4c7d62f8ecccb619d5d1029df93b512
409
408
2025-11-06T22:41:25Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This level design guide was written to ease newcomers to Malefact mapping into the process. If you wish to create your own levels for the game, it’s strongly recommended you give them a glance, even if only for those sections covering functionality that is unique to Malefact.
Note: The tutorials on this page were written by Malefact’s lead developer and level designer and are thus protected. If you’d like to add your own tutorials or link to those created by others, you can do so on the [[Category:Tutorials And Guides|main tutorial category page]].
= Table of Contents =
== Beginner ==
* Installing Prerequisites
* Sector Creation
* Texturing
* Lighting
* Sector Effects
* Actor Placement
* Linedef Triggers & Interactive Elements
* Ending Your Map
* MAPINFO Definition
== Advanced ==
* Scrolling Surfaces
* Slopes & Arches
* 3D Sectors & Liquids
* Patrolling Monsters & Hazards
* ACS Scripting
* Hub Maps
* Ambient Sounds
== Design Theory ==
* Pre-Planning
* Area Modules
* Monster Closets & Traps
* Encounter Design & Pacing
[[Category:Tutorials And Guides]]
9fdc4e54d35c572d3cd918182b94624ee5bee9ff
410
409
2025-11-06T22:44:25Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This level design guide was written to ease newcomers to Malefact mapping into the process. It was written by hardcore_gamer, who is the lead developer and level designer for the game. If you wish to create your own levels for the game, it’s strongly recommended you give them a glance, even if only for those sections covering functionality that is unique to Malefact.
If you’d like to add your own tutorials or link to those created by others, you can do so on the [[Category:Tutorials And Guides|main tutorial category page]].
= Table of Contents =
== Beginner ==
* Installing Prerequisites
* Sector Creation
* Texturing
* Lighting
* Sector Effects
* Actor Placement
* Linedef Triggers & Interactive Elements
* Ending Your Map
* MAPINFO Definition
== Advanced ==
* Scrolling Surfaces
* Slopes & Arches
* 3D Sectors & Liquids
* Patrolling Monsters & Hazards
* ACS Scripting
* Hub Maps
* Ambient Sounds
== Design Theory ==
* Pre-Planning
* Area Modules
* Monster Closets & Traps
* Encounter Design & Pacing
[[Category:Tutorials And Guides]]
f19b76c95b3f6db1a1f740983c2823058bf786a8
411
410
2025-11-06T23:23:28Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This level design guide was written to ease newcomers to Malefact mapping into the process. It was written by hardcore_gamer, who is the lead developer and level designer for the game. If you wish to create your own levels for the game, it’s strongly recommended you give them a glance, even if only for those sections covering functionality that is unique to Malefact.
If you’d like to add your own tutorials or link to those created by others, you can do so on the [[Category:Tutorials And Guides|main tutorial category page]].
= Table of Contents =
== Beginner ==
* Installing Prerequisites
* Sector Creation
* Texturing
* Lighting
* Sector Effects
* Actor Placement
* Linedef Triggers & Interactive Elements
* Ending Your Map
* MAPINFO Definition
== Advanced ==
* Scrolling Surfaces
* Slopes & Arches
* 3D Sectors & Liquids
* Patrolling Monsters & Hazards
* ACS Scripting
* Hub Maps
* Ambient Sounds
== Design Theory ==
* Pre-Planning
* Area Modules
* Monster Closets & Traps
* Encounter Design & Pacing
[[Category:Tutorials And Guides]]
fae1ca1a379d1e26c5121d766b2333bc17aaa484
Category:Game Information
14
290
412
372
2025-11-08T14:53:30Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Relevant Doom engine games are listed on this page.
== Classic ==
The original classics from the 90s.
=== [[Doom]] ===
Doom is a first person shooter action game created by Id Software and published in 1993.
=== [[Heretic]] ===
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis, id elementum eros.
== Modern ==
Neo-boomer shooters created using a modified version of the Doom engine (e.g. UZDoom/GZDoom).
=== [[Malefact]] ===
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis, id elementum eros.
[[Category:Game Information]]
30474b852707329e71aac74864acd275df165d05
413
412
2025-11-08T14:55:05Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Relevant Doom engine games are listed on this page.
== Classic ==
The original classics from the 90s.
=== [[Doom]] ===
Doom is a first person shooter action game created by Id Software and published in 1993.
=== [[Heretic]] ===
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis, id elementum eros.
== Modern ==
Neo-boomer shooters created using a modified version of the Doom engine (e.g. UZDoom/GZDoom).
=== [[Malefact]] ===
Malefact is a fantasy horror boomer shooter in development by GoreMaxxed Productions. The project is led by hardcore_gamer, with a demo version expected to release in Q1 2026. The game is built on the UZDoom engine.
[[Category:Game Information]]
25f52b29814415ca64783eded2a359e581549f43
415
413
2025-11-08T14:59:58Z
MasterOfDisillusionment
431405
Replaced content with " [[Category:Game Information]]"
wikitext
text/x-wiki
[[Category:Game Information]]
efb54ab4a9f8778da060c72e038080755aa8afb0
Game Information
0
315
414
2025-11-08T14:59:43Z
MasterOfDisillusionment
431405
Created page with "Relevant Doom engine games are listed on this page. == Classic == The original classics from the 90s. === [[Doom]] === Doom is a first person shooter action game created by Id Software and published in 1993. === [[Heretic]] === Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis, id elementum eros. ==..."
wikitext
text/x-wiki
Relevant Doom engine games are listed on this page.
== Classic ==
The original classics from the 90s.
=== [[Doom]] ===
Doom is a first person shooter action game created by Id Software and published in 1993.
=== [[Heretic]] ===
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis, id elementum eros.
== Modern ==
Neo-boomer shooters created using a modified version of the Doom engine (e.g. UZDoom/GZDoom).
=== [[Malefact]] ===
Malefact is a fantasy horror boomer shooter in development by GoreMaxxed Productions. The project is led by hardcore_gamer, with a demo version expected to release in Q1 2026. The game is built on the UZDoom engine.
[[Category:Game Information]]
25f52b29814415ca64783eded2a359e581549f43
417
414
2025-11-08T15:01:25Z
MasterOfDisillusionment
431405
Protected "[[Game Information]]": Game list is currated ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite))
wikitext
text/x-wiki
Relevant Doom engine games are listed on this page.
== Classic ==
The original classics from the 90s.
=== [[Doom]] ===
Doom is a first person shooter action game created by Id Software and published in 1993.
=== [[Heretic]] ===
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque magna, facilisis sed orci convallis, condimentum aliquet sem. Duis porttitor quam tortor, vitae molestie augue porttitor in. Etiam eget eleifend felis, id elementum eros.
== Modern ==
Neo-boomer shooters created using a modified version of the Doom engine (e.g. UZDoom/GZDoom).
=== [[Malefact]] ===
Malefact is a fantasy horror boomer shooter in development by GoreMaxxed Productions. The project is led by hardcore_gamer, with a demo version expected to release in Q1 2026. The game is built on the UZDoom engine.
[[Category:Game Information]]
25f52b29814415ca64783eded2a359e581549f43
MediaWiki:Sidebar
8
289
416
338
2025-11-08T15:00:47Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* Important Pages
** FAQ|FAQ
** Game Information|Game Information
** Category:Mods And Assets|Mods & Assets
** Category:Tutorials And Guides|Tutorials & Guides
** Category:Boom Tropes|Boom Tropes
* wiki.gg
** support:|sidebar-support-wiki
** Wikigg-ticket-link|sidebar-submit-ticket
** wikigg-socialmedia-joinlink|wikigg-socialmedia-jointext-sidebar
9ed96de8b836ba03aa646a38b3b432b42891025f
424
416
2025-11-08T15:08:27Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* Important Pages
** FAQ|FAQ
** Game Information|Game Information
** Mods And Assets|Mods & Assets
** Tutorials And Guides|Tutorials & Guides
** Boom Tropes|Boom Tropes
* wiki.gg
** support:|sidebar-support-wiki
** Wikigg-ticket-link|sidebar-submit-ticket
** wikigg-socialmedia-joinlink|wikigg-socialmedia-jointext-sidebar
896636e884cc8f358767577a3a0af65087a50729
435
424
2025-11-08T16:51:20Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* Important Pages
** FAQ|FAQ
** Game Information|Game Information
** Mods And Assets|Mods & Assets
** Tutorials And Guides|Tutorials & Guides
** Boom Tropes|Boom Tropes
* wiki.gg
** Wiki Syntax|Wiki Syntax
** support:|sidebar-support-wiki
** Wikigg-ticket-link|sidebar-submit-ticket
** wikigg-socialmedia-joinlink|wikigg-socialmedia-jointext-sidebar
035a8da64e589ecc8808229527f4dc286a7946be
Hardcore Doom Wiki/pages
0
5
418
346
2025-11-08T15:01:51Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{Main page box/start
| title = Useful wiki pages
| class = centered-content
}}
<div class="mp-links columns-2">
* {{MP link| Game Information |link=Game Information |image=Icon GameInformation.png |size=64px }}
* {{MP link| Mods & Assets |link=Category:Mods And Assets |image=Icon ModsAndResources.png |size=64px }}
* {{MP link| Tutorials & Guides |link=Category:Tutorials And Guides |image=Icon Tutorials.png |size=64px }}
* {{MP link| Boom Tropes |link=Category:Boom Tropes |image=Icon BoomTropes.png |size=64px }}
</div>
{{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line -->
4454be4b93ffb1a070e9362ac3f50f18b1b8360f
427
418
2025-11-08T15:13:10Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{Main page box/start
| title = Useful wiki pages
| class = centered-content
}}
<div class="mp-links columns-2">
* {{MP link| Game Information |link=Game Information |image=Icon GameInformation.png |size=64px }}
* {{MP link| Mods & Assets |link=Mods And Assets |image=Icon ModsAndResources.png |size=64px }}
* {{MP link| Tutorials & Guides |link=Tutorials And Guides |image=Icon Tutorials.png |size=64px }}
* {{MP link| Boom Tropes |link=Boom Tropes |image=Icon BoomTropes.png |size=64px }}
</div>
{{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line -->
0162c3bcfbe699ce99d020d52d279175269ec348
Mods And Assets
0
316
419
2025-11-08T15:03:48Z
MasterOfDisillusionment
431405
Created page with "Pages related to user created mods, TCs, and game assets belong here. == Mods == Mods modify the gameplay of a game and optionally contain new levels and or game assets. === Mod 1 === Lorem ipsum dolor sit amet, consectetur adipiscing elit. === Mod 2 === Lorem ipsum dolor sit amet, consectetur adipiscing elit. == Assets == Assets are used to expand the base game via addition graphics, sound, code, etc. === Assets 1 === Lorem ipsum dolor sit amet, consectetur adip..."
wikitext
text/x-wiki
Pages related to user created mods, TCs, and game assets belong here.
== Mods ==
Mods modify the gameplay of a game and optionally contain new levels and or game assets.
=== Mod 1 ===
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
=== Mod 2 ===
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Assets ==
Assets are used to expand the base game via addition graphics, sound, code, etc.
=== Assets 1 ===
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
=== Assets 2 ===
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
f5e13f127ca221fc6e5586b93b1a2d75456b2551
421
419
2025-11-08T15:05:10Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Pages related to user created mods, TCs, and game assets belong here.
== Mods ==
Mods modify the gameplay of a game and optionally contain new levels and or game assets.
=== Mod 1 ===
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
=== Mod 2 ===
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Assets ==
Assets are used to expand the base game via addition graphics, sound, code, etc.
=== Assets 1 ===
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
=== Assets 2 ===
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
[[Category:Mods And Assets]]
058aa99ccfbfc4a8d19b644d548a96259c9dcc0e
428
421
2025-11-08T15:35:09Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
User-created content belonging to any of the curated list of Doom engine games is listed here. There are three main parent categories:
Hardcore Originals: The official flagship modding projects of hardcoredoom.com.
Community Mods: Mods created by the [[hardcoredoom]] community.
Endorsed Mods: Third-party mods that are of high enough quality to warrant a shout-out.
Custom campaigns that do not include significant changes to gameplay or content are listed in the 'Custom Campaigns' section.
== Hardcore Originals ==
* [[Absolute Doom]]
== Community Mods ==
* Whatever Mod 1
* Whatever Mod 2
== Endorsed Mods ==
* Whatever Mod 1
* Whatever Mod 2
== Custom Campaigns ==
=== Hardcore Community ===
* Whatever Campaign 1
* Whatever Campaign 2
=== Hardcore Community ===
* Whatever Campaign 1
* Whatever Campaign 2
[[Category:Mods And Assets]]
aefd7564d638b6cc10d8c8ce26a30d7dbb9b9494
429
428
2025-11-08T16:29:40Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
User-created content belonging to any of the curated list of Doom engine games is listed here. Custom assets for use in your own mods are listed here as well.
There are three main parent categories:
Hardcore Originals: The official flagship modding projects of hardcoredoom.com.
Community Mods: Mods created by the [[hardcoredoom]] community.
Endorsed Mods: Third-party mods that are of high enough quality to warrant a shout-out.
== Hardcore Originals ==
=== Mods ===
* [[Absolute Doom]]
=== Level Packs ===
* Whatever Campaign 1
* Whatever Campaign 2
=== Assets ===
* Item 1
== Community ==
=== Mods ===
* Whatever Mod 1
* Whatever Mod 2
=== Level Packs ===
* Whatever Campaign 1
* Whatever Campaign 2
== Endorsed ==
=== Mods ===
* Whatever Mod 1
* Whatever Mod 2
=== Level Packs ===
* Whatever Campaign 1
* Whatever Campaign 2
== Custom Assets ==
These assets can be used in your own mods. Be sure to credit the original author. Note that 'in-house' assets created by the hardcoredoom team should not be listed here but rather in the 'Hardcore Originals' section above.
=== Graphics & Textures ===
* Item 1
=== Music & Audio ===
* Item 1
=== Weapons & Pickups ===
* Item 1
=== Enemies & Monsters ===
* Item 1
=== Props ===
* Item 1
[[Category:Mods And Assets]]
5eee9d820d61784c2a44bb091541174ce808d522
430
429
2025-11-08T16:32:41Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
User-created content belonging to any of the curated list of Doom engine games is listed here. Custom assets for use in your own mods are listed here as well.
There are three main parent categories:
'''Hardcore Originals:''' The official projects of hardcoredoom.com.
'''Community Mods:''' Mods created by the [[hardcoredoom]] community.
'''Endorsed Mods:''' Third-party mods that were not created by the hardcoredoom community.
Keep in mind that this is a curated list; do not create pages for mods or content unless they meet a certain minimum threshold for quality.
== Hardcore Originals ==
=== Mods ===
* [[Absolute Doom]]
=== Level Packs ===
* Whatever Campaign 1
* Whatever Campaign 2
=== Assets ===
* Item 1
== Community ==
=== Mods ===
* Whatever Mod 1
* Whatever Mod 2
=== Level Packs ===
* Whatever Campaign 1
* Whatever Campaign 2
== Endorsed ==
=== Mods ===
* Whatever Mod 1
* Whatever Mod 2
=== Level Packs ===
* Whatever Campaign 1
* Whatever Campaign 2
== Custom Assets ==
These assets can be used in your own mods. Be sure to credit the original author. Note that 'in-house' assets created by the hardcoredoom team should not be listed here but rather in the 'Hardcore Originals' section above.
=== Graphics & Textures ===
* Item 1
=== Music & Audio ===
* Item 1
=== Weapons & Pickups ===
* Item 1
=== Enemies & Monsters ===
* Item 1
=== Props ===
* Item 1
[[Category:Mods And Assets]]
23f69b1ce7b1187fa44605274ebb31c6f0b86e0c
431
430
2025-11-08T16:35:57Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
User-created content belonging to any of the curated list of Doom engine games is listed here. Custom assets for use in your own mods are listed here as well.
There are three main parent categories:
'''Hardcore Originals:''' The official projects of hardcoredoom.com.
'''Community Mods''': Mods created by the [[hardcoredoom]] community.
'''Endorsed Mods:''' Third-party mods that were not created by the hardcoredoom community.
Keep in mind that this is a curated list; do not create pages for mods or content unless they meet a certain minimum threshold for quality.
== Hardcore Originals ==
=== Mods ===
* [[Absolute Doom]]
=== Level Packs ===
* Whatever Campaign 1
* Whatever Campaign 2
=== Assets ===
* Item 1
== Community ==
=== Mods ===
* Whatever Mod 1
* Whatever Mod 2
=== Level Packs ===
* Whatever Campaign 1
* Whatever Campaign 2
== Endorsed ==
=== Mods ===
* Whatever Mod 1
* Whatever Mod 2
=== Level Packs ===
* Whatever Campaign 1
* Whatever Campaign 2
== Custom Assets ==
These assets can be used in your own mods. Be sure to credit the original author. Note that 'in-house' assets created by the hardcoredoom team should not be listed here but rather in the 'Hardcore Originals' section above.
=== Graphics & Textures ===
* Item 1
=== Music & Audio ===
* Item 1
=== Weapons & Pickups ===
* Item 1
=== Enemies & Monsters ===
* Item 1
=== Props ===
* Item 1
[[Category:Mods And Assets]]
d950001646d7116a931b273d4ec0c3609f07c2a1
432
431
2025-11-08T16:38:18Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
User-created content belonging to any of the curated list of Doom engine games is listed here. Custom assets for use in your own mods are listed here as well.
There are three main parent categories:
'''Hardcore Originals:''' The official projects of hardcoredoom.com.
'''Community Mods''': Mods created by the [[hardcoredoom]] community.
'''Endorsed Mods:''' Third-party mods that were not created by the hardcoredoom community.
Keep in mind that this is a curated list; do not create pages for mods or content unless they meet a certain minimum threshold for quality.
== Hardcore Originals ==
=== Mods ===
* [[Absolute Doom]]
=== Level Packs ===
* Whatever Campaign 1
=== Assets ===
* Item 1
== Community ==
=== Mods ===
* [[Ultimate Mortal Kombat DOOMXL]]
=== Level Packs ===
* Whatever Campaign 1
== Endorsed ==
=== Mods ===
* Whatever Mod 1
=== Level Packs ===
* Whatever Campaign 1
== Custom Assets ==
These assets can be used in your own mods. Be sure to credit the original author. Note that 'in-house' assets created by the hardcoredoom team should not be listed here but rather in the 'Hardcore Originals' section above.
=== Graphics & Textures ===
* Item 1
=== Music & Audio ===
* Item 1
=== Weapons & Pickups ===
* Item 1
=== Enemies & Monsters ===
* Item 1
=== Props ===
* Item 1
[[Category:Mods And Assets]]
bfa98330fef1dd44d12bb558d739f501027680ed
Category:Mods And Assets
14
292
420
389
2025-11-08T15:03:56Z
MasterOfDisillusionment
431405
Replaced content with " [[Category:Mods And Assets]]"
wikitext
text/x-wiki
[[Category:Mods And Assets]]
944dcdf9c547eda52f3f635f38aa456e03c6cde2
Tutorials And Guides
0
317
423
2025-11-08T15:06:45Z
MasterOfDisillusionment
431405
Created page with "If you're a newcomer to modding or mapping using the UZDoom engine, this page contains useful resources for getting started. == Guides & Tutorials == Guides created by our own community. === [[Malefact Mapping Tutorials]] === A level design guide for Malefact, geared toward newcomers to the game, written by the game's lead developer and level designer. === Sub-Category 2 === Lorem ipsum dolor sit amet, consectetur adipiscing elit. == ZScript & Coding == Lorem ipsum..."
wikitext
text/x-wiki
If you're a newcomer to modding or mapping using the UZDoom engine, this page contains useful resources for getting started.
== Guides & Tutorials ==
Guides created by our own community.
=== [[Malefact Mapping Tutorials]] ===
A level design guide for Malefact, geared toward newcomers to the game, written by the game's lead developer and level designer.
=== Sub-Category 2 ===
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== ZScript & Coding ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
=== Sub-Category 1 ===
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
=== Sub-Category 2 ===
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Third Party Guides & Tutorials ==
=== Level Editing & Scripting ===
Guides created outside our community.
Note: While Doom Builder 2 is considered defunct in favor of Ultimate Doom Builder, most general functionality carries over. Just keep in mind that there may be some minor differences when watching older tutorial videos.
* [[https://youtube.com/playlist?list=PLQrQ055Wd7p77pBCmTQT6kW-K8Plmw_D-&si=DHhSQQcJ3iT16Czj| Ultimate Doombuilder Tutorials by Bridgeburner]]
* [[https://youtube.com/playlist?list=PLCE835098C82D8F24&si=c3VJyO7010AW0_2Z| Doombuilder 2 Tutorials by Chubzdoomer]]
* [[https://youtube.com/playlist?list=PLuDCrjOek9njK8hXkZmTxaU8PWzjzGql7&si=5R5NcyAeidk4GPjz| ZDoom ACS Scripting Tutorials by Chubzdoomer]]
* [[https://youtube.com/playlist?list=PL-36gm0W-VKl89pw9lUfF36TJ28bjrNUn&si=H8rclwM8wWbkBw8g| GZDoom Zscript Tutorials by DavidXNewton]]
[[Category:Tutorials And Guides]]
81c3a23da09ec8bd3c8ab44e023625e4ca17c164
433
423
2025-11-08T16:39:57Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
If you're a newcomer to modding or mapping using the UZDoom engine, this page contains useful resources for getting started.
== Guides & Tutorials ==
Guides created by our own community.
=== [[Malefact Mapping Tutorials]] ===
A level design guide for Malefact, geared toward newcomers to the game, written by the game's lead developer and level designer.
=== Sub-Category 2 ===
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== ZScript & Coding ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
=== Sub-Category 1 ===
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
=== Sub-Category 2 ===
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
== Third Party Guides & Tutorials ==
=== Level Editing & Scripting ===
Guides created outside our community.
Note: While Doom Builder 2 is considered defunct in favor of Ultimate Doom Builder, most general functionality carries over. Just keep in mind that there may be some minor differences when watching older tutorial videos.
* [[https://youtube.com/playlist?list=PLQrQ055Wd7p77pBCmTQT6kW-K8Plmw_D-&si=DHhSQQcJ3iT16Czj| Ultimate Doombuilder Tutorials by Bridgeburner]]
* [[https://youtube.com/playlist?list=PLCE835098C82D8F24&si=c3VJyO7010AW0_2Z| Doombuilder 2 Tutorials by Chubzdoomer]]
* [[https://youtube.com/playlist?list=PLuDCrjOek9njK8hXkZmTxaU8PWzjzGql7&si=5R5NcyAeidk4GPjz| ZDoom ACS Scripting Tutorials by Chubzdoomer]]
* [[https://youtube.com/playlist?list=PL-36gm0W-VKl89pw9lUfF36TJ28bjrNUn&si=H8rclwM8wWbkBw8g| GZDoom Zscript Tutorials by DavidXNewton]]
== Misc/Other ==
* [[Wiki Syntax]]
[[Category:Tutorials And Guides]]
a8ea63e80c7d1af06a3b4bc2c4e1a7cdc2091fc8
Boom Tropes
0
318
426
2025-11-08T15:12:01Z
MasterOfDisillusionment
431405
Created page with "Boom Tropes is an archive of recurring design elements, level setups, and architecture patterns found in classic FPS games and their mods. Besides being fun to browse, the tropes can also be a potentially useful source of inspiration for level designers since these tropes can be easily incorporated into their own designs. == Gameplay == === Encounter Design === Tropes related monster placement and encounters. ==== Incidental ==== Straightforward monster placement tha..."
wikitext
text/x-wiki
Boom Tropes is an archive of recurring design elements, level setups, and architecture patterns found in classic FPS games and their mods. Besides being fun to browse, the tropes can also be a potentially useful source of inspiration for level designers since these tropes can be easily incorporated into their own designs.
== Gameplay ==
=== Encounter Design ===
Tropes related monster placement and encounters.
==== Incidental ====
Straightforward monster placement that doesn't require elaborate setups.
* [[Idle Monster]]: A monster that remains inactive until it sees the player.
* [[Door Ambush]]: A monster that waits behind a door.
* [[Lift Ambush]]: A monster that waits on top of a platform or lift.
* [[Turret Monster]]: A projectile or hitscan monster that’s nested onto an elevated space or platform.
* [[Alerted Monster]]: Like an idle monster except it’s not deaf; it can be awoken by player’s gunfire without a direct line of sight.
==== Monster Closets & Traps ====
More complex encounters involving triggers or scripts.
* [[Dropwall Trap]]: A wall or section of a wall that lowers vertically to reveal a new area with an enemy or multiple enemies.
* Item 2
=== Layouts & Geometry ===
Tropes related to map layouts and area design.
==== Map Layouts ====
How maps are organized as a whole.
* Item 1
* Item 2
==== Room Modules ====
The types of areas commonly used in maps.
* [[Hub]]: An area with three or more entry points.
* [[Dead-end]]: An area with a single entry point.
* [[Corridor]]: An area with two entry points.
* [[Couplers]]: Small connector spaces used to bridge areas
=== Item Placement ===
Tropes relating to item placement.
* Item 1
* Item 2
=== Interactives ===
Gameplay tropes involving interactive elements, like doors, switches, teleporters, etc.
=== Locations & Themes ===
Common settings and locations of levels.
=== Settings & Locations ===
* Item 1
* Item 2
== Detailing ==
Tropes related to the process of adding visual elements that enhance realism and atmosphere without altering the gameplay structure go here.
=== Geometric ===
Map/Level Detail created through level geometry.
* Item 1
* Item 2
=== Props & Greeble ===
Map/Level Detail created through placeable props and actors.
* [[Crates And Barrels]]: Storage containers, usually made from wood or alloy.
* Item 2
[[Category:Boom Tropes]]
b3ed579ad71580d82ef5e4b54f9302dfa35a2c52
Wiki Syntax
0
319
434
2025-11-08T16:50:06Z
MasterOfDisillusionment
431405
Created page with "If you want to edit or create your own wiki page, you must use the syntax below. Note that pages must not use the largest header type (e.g. =) since this is automatically applied by the page title. <syntaxhighlight lang="wikitext" style="overflow: auto;"> Headers: = First tier = (Do not use; header 1 is reserved for page titles) == Second tier == === Third tier === ==== Fourth tier ==== ===== Fifth tier ===== ====== Sixth tier ====== Linking: [[Name of target page]]..."
wikitext
text/x-wiki
If you want to edit or create your own wiki page, you must use the syntax below. Note that pages must not use the largest header type (e.g. =) since this is automatically applied by the page title.
<syntaxhighlight lang="wikitext" style="overflow: auto;">
Headers:
= First tier = (Do not use; header 1 is reserved for page titles)
== Second tier ==
=== Third tier ===
==== Fourth tier ====
===== Fifth tier =====
====== Sixth tier ======
Linking:
[[Name of target page]] - This is used for linking to other pages by their page name, e.g. [[My Awesome Game Mod]].
[[Name of target page|The Text to be displayed]] - Ditto except the visible text on the page is different than the name of the page.
Numbered list:
# Point one
# Point two
# Point three
## Point three subpoint one
# Point four
Bullet list:
* First point
* Second point
* Third point
** Third point, first subpoint
* Fourth point
Spoiler tag (simple):
{{spoiler|This is the spoiler text}}
Spoiler tag (multi-line):
{{spoiler|block=y|Really long spoiler that spans multiple lines
Whatever
Whatever
Etc.
}}
</syntaxhighlight>
[[Category:Tutorials And Guides]]
0df711cbb5e21bb89c072f0e749fc2fb6301310a
437
434
2025-11-08T17:25:58Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
If you want to edit or create your own wiki page, you must use the syntax below.
== General Syntax ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
Headers:
= First tier = (Do not use; header 1 is reserved for page titles)
== Second tier ==
=== Third tier ===
==== Fourth tier ====
===== Fifth tier =====
====== Sixth tier ======
Linking:
[[Name of target page]] - This is used for linking to other pages by their page name, e.g. [[My Awesome Game Mod]].
[[Name of target page|The Text to be displayed]] - Ditto except the visible text on the page is different than the name of the page.
Numbered list:
# Point one
# Point two
# Point three
## Point three subpoint one
# Point four
Bullet list:
* First point
* Second point
* Third point
** Third point, first subpoint
* Fourth point
Spoiler tag (simple):
{{spoiler|This is the spoiler text}}
Spoiler tag (multi-line):
{{spoiler|block=y|Really long spoiler that spans multiple lines
Whatever
Whatever
Etc.
}}
</syntaxhighlight>
== Infobox Templates ==
If you need to create a new type of infobox, it's crucial you understand the current method.
[[Category:Tutorials And Guides]]
41422d11a23c3dc1ebc8af515eb810d3d6b5528b
Template:GameInfo Infobox
10
303
436
367
2025-11-08T17:21:37Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
<includeonly>
{{#invoke:Infobox|main
|kind=GameInfo
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Modding & Community, External Resources
|General Info=Release date, Engine, Setting/Theme, Latest Version, Developer(s), Publisher(s)
|Modding & Community=Mod support, Notable mods/total conversions
|External Resources=Official website, Steam page, GOG page, ModDB page
}}
</includeonly>
<noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
fb7f130f3afc09b556cd71601453c60d048e5874
Template:ModInfo Infobox
10
320
438
2025-11-08T17:57:20Z
MasterOfDisillusionment
431405
Created page with "<includeonly> {{#invoke:Infobox|main |kind=Mod |sep=, |image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}} |sections=General Info, Features, External Links |General Info=Author(s), Release date(s), Latest version, IWAD required, Engine compatibility, Development status |Features=Gameplay Modifications, New Levels, New Graphics, New Music, New Sounds, New Weapons, New Enemies |External Links=Website, ModDB page }} </includeonly> <noinclude> {{documentation}} Ca..."
wikitext
text/x-wiki
<includeonly>
{{#invoke:Infobox|main
|kind=Mod
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Features, External Links
|General Info=Author(s), Release date(s), Latest version, IWAD required, Engine compatibility, Development status
|Features=Gameplay Modifications, New Levels, New Graphics, New Music, New Sounds, New Weapons, New Enemies
|External Links=Website, ModDB page
}}
</includeonly>
<noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
7b1f4a458aa609e3d6a97b4f3a2ce9bff9e9cbae
440
438
2025-11-08T18:17:30Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
<includeonly>
{{#invoke:Infobox|main
|kind=Mod
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Features, External Links
|General Info=Author(s), Release date(s), Latest version, IWAD required, Engine compatibility, Development status
|Features=Gameplay Modifications, New Levels, New Graphics, New Music, New Sounds, New Weapons, New Enemies
|External Links=Website, ModDB page
}}
</includeonly>
<noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
34f22cd9f0400e20183c8a9d09880ff83107e3b2
443
440
2025-11-08T18:27:43Z
MasterOfDisillusionment
431405
MasterOfDisillusionment renamed page [[Template:Mod Infobox]] to [[Template:ModInfo Infobox]]: Misspelled title
wikitext
text/x-wiki
<includeonly>
{{#invoke:Infobox|main
|kind=Mod
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Features, External Links
|General Info=Author(s), Release date(s), Latest version, IWAD required, Engine compatibility, Development status
|Features=Gameplay Modifications, New Levels, New Graphics, New Music, New Sounds, New Weapons, New Enemies
|External Links=Website, ModDB page
}}
</includeonly>
<noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
34f22cd9f0400e20183c8a9d09880ff83107e3b2
445
443
2025-11-08T18:30:22Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
<includeonly>
{{#invoke:Infobox|main
|kind=ModInfo
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Features, External Links
|General Info=Author(s), Release Date
|Features=Feature 1, Feature 2
|External Links=Official website, ModDB page
}}
</includeonly>
<noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
f59714d588a9ad1b7b97a0eca6e68d5008a8b862
446
445
2025-11-08T18:38:48Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
<includeonly>
{{#invoke:Infobox|main
|kind=ModInfo
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Features, External Links
|General Info=Author, Release Date
|Features= Item 1, Item 2
|External Links=Website, ModDB
}}
</includeonly>
<noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
4253abb6be13d2508f1c786b065f43555a427e0c
448
446
2025-11-08T18:46:17Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
<includeonly>
{{#invoke:Infobox|main
|kind=ModInfo
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Features, External Links
|General Info=Author, Release Date
|Features=Item 1, Item 2
|External Links=Website, ModDB
}}
</includeonly>
<noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
e667acffdff6a8e49981400f2b5422f5de6f5bee
450
448
2025-11-08T18:55:41Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
<includeonly>
{{#invoke:Infobox|main
|kind=ModInfo
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Features, External Links
|General Info=Author(s), Release Date, Iwad Required, Engine, Development Status
|Features=Gameplay Modifications, New Levels, New Graphics, New Music, New Sounds, New Weapons, New Enemies
|External Links=Website, ModDB
}}
</includeonly>
<noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
4a6df25a2a084e6a77f54bcb7f1dc1c74f0cdb53
Absolute Doom
0
322
441
2025-11-08T18:17:40Z
MasterOfDisillusionment
431405
Created page with "{{Mod |title= Absolute Doom |image= |Author(s)= GoreMaxxedProductions |Release date(s)= TBA |Latest version= |IWAD required= doom2.iwad |Engine compatibility= UZDoom |Development status= Active |Gameplay Modifications= Yes |New Levels= Yes |New Graphics= Yes |New Music= Yes |New Sounds= Yes |New Weapons= Yes |New Enemies= Yes |Website= |ModDB page= }} Absolute Doom is the flagship mod of hardcoredoom.com.It originally started as several separate mods called Hardc..."
wikitext
text/x-wiki
{{Mod
|title= Absolute Doom
|image=
|Author(s)= GoreMaxxedProductions
|Release date(s)= TBA
|Latest version=
|IWAD required= doom2.iwad
|Engine compatibility= UZDoom
|Development status= Active
|Gameplay Modifications= Yes
|New Levels= Yes
|New Graphics= Yes
|New Music= Yes
|New Sounds= Yes
|New Weapons= Yes
|New Enemies= Yes
|Website=
|ModDB page=
}}
Absolute Doom is the flagship mod of hardcoredoom.com.It originally started as several separate mods called Hardcore Doom, Definitive Doom, and Project ReTexture, but were eventually merged for sake of simplicity
[[Category:Mods And Assets]]
b93fe2597384a823e5c1ed7ee621c66e2f5bda96
442
441
2025-11-08T18:26:00Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Absolute Doom is the flagship mod of hardcoredoom.com.It originally started as several separate mods called Hardcore Doom, Definitive Doom, and Project ReTexture, but were eventually merged for sake of simplicity
[[Category:Mods And Assets]]
595123d70bd001e870bfb8235d9d25f317ffc3d1
447
442
2025-11-08T18:41:00Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{ModInfo
|title=
|image=
|Author=
|Release Date=
|Item 1=
|Item 2=
|Website=
|ModDB=
}}
Absolute Doom is the flagship mod of hardcoredoom.com.It originally started as several separate mods called Hardcore Doom, Definitive Doom, and Project ReTexture, but were eventually merged for sake of simplicity
[[Category:Mods And Assets]]
2e2d905993ae181b294ea5c76de5aa36c9cace32
449
447
2025-11-08T18:46:23Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{ModInfo
|title= Name
|image= WhateverImage.png
|Author= Goremaxxed Productions
|Release Date=
|Item 1= Stuff
|Item 2= Stuff
|Website= Stuff
|ModDB= Stuff
}}
Absolute Doom is the flagship mod of hardcoredoom.com.It originally started as several separate mods called Hardcore Doom, Definitive Doom, and Project ReTexture, but were eventually merged for sake of simplicity
[[Category:Mods And Assets]]
8a0a7636fa0b8cb27fcc7dd864dbea7768e91d84
Template:Mod Infobox
10
323
444
2025-11-08T18:27:44Z
MasterOfDisillusionment
431405
MasterOfDisillusionment renamed page [[Template:Mod Infobox]] to [[Template:ModInfo Infobox]]: Misspelled title
wikitext
text/x-wiki
#REDIRECT [[Template:ModInfo Infobox]]
dc9d26967bb338269ede7dec9d7cbacdff7c25e6
Template:ModInfo Infobox/doc
10
324
451
2025-11-08T19:04:15Z
MasterOfDisillusionment
431405
Created page with "This is an example GameInfo infobox using the DRUID infobox framework. = Copyable code for use on other content pages = If you want to create pages using this infobox, you can copy the code below. This code is for CONTENT PAGES ONLY. It does not have anything to do with changing what the template supports. A field can be left empty if the data for it is not needed. == Example Code == <syntaxhighlight lang="wikitext" style="overflow: auto;"> {{ModInfo |title= Mod Tit..."
wikitext
text/x-wiki
This is an example GameInfo infobox using the DRUID infobox framework.
= Copyable code for use on other content pages =
If you want to create pages using this infobox, you can copy the code below. This code is for CONTENT PAGES ONLY. It does not have anything to do with changing what the template supports. A field can be left empty if the data for it is not needed.
== Example Code ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{ModInfo
|title= Mod Title
|image= ImageFileName.png
|Author= Author name
|Release Date= Whatever release date
|Iwad Required= The game iwad file needed to load the mod
|Engine= Game engine needed for the mod and the latest version know to work
|Development Status= Is the mod active or dead? E.g. 'Active, Hiatus, Dead, etc.'
|Gameplay Modifications= Yes or No
|New Levels= Yes or No (if yes, specify how many)
|New Graphics= Yes or No
|New Music= Yes or No
|New Sounds= Yes or No
|New Weapons= Yes or No
|New Enemies= Yes or No
|Website= Insert team/project website if there is one
|ModDB= Insert modDB page if there is one
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
== Clean Version ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{ModInfo
|title=
|image=
|Author=
|Release Date=
|Iwad Required=
|Engine=
|Development Status=
|Gameplay Modifications=
|New Levels=
|New Graphics=
|New Music=
|New Sounds=
|New Weapons=
|New Enemies=
|Website=
|ModDB=
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
81b14a055b3c4bd1aa5476dd3a1acbbddd2bb792
Absolute Doom
0
322
452
449
2025-11-08T19:05:43Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{ModInfo
|title= Absolute Doom
|image=
|Author= GoreMaxxed Productions
|Release Date= TBA
|Iwad Required= doomw.iwad
|Engine= UZDoom
|Development Status= Active
|Gameplay Modifications= Yes
|New Levels= Yes
|New Graphics= Yes
|New Music= Yes
|New Sounds= Yes
|New Weapons= Yes
|New Enemies= Yes
|Website=
|ModDB=
}}
Absolute Doom is the flagship mod of hardcoredoom.com.It originally started as several separate mods called Hardcore Doom, Definitive Doom, and Project ReTexture, but were eventually merged for sake of simplicity
[[Category:Mods And Assets]]
beddc8c2f842ed4add2bfbcccb705179f0578c48
455
452
2025-11-08T20:06:16Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Absolute Doom is the flagship mod of hardcoredoom.com. It originally began as several separate mods called Hardcore Doom, Definitive Doom, and Project ReTexture, but these were eventually merged for the sake of simplicity. The mod combines the best levels from each official IWAD into a series of condensed campaigns, adds new weapons and enemies, improves visual presentation with enhanced VFX and other effects, and replaces textures with higher quality re-imaginings.
== Overview ==
=== Gameplay ===
Absolute Doom does not stray too far away from vanilla gameplay, being more akin to an enhanced version of the original with an expanded weapon and monster roster.
The mod introduces six new weapons:
* Shock Knuckles - Generates splash damage when the player punches enemies.
* Revolver - Revolver that offers higher damage per shot than the pistol,
* Uber-Shotgun - Quad-barrel version of the SSG.
* Assault Rifle - More accurate and deadlier than the chaingun but with lower ammo capacity.
* Plasma SMG - Worse spread than the regular plasma gun but does more damage at close and medium rages.
* Swarm Missiles - A hand-held swarm missile launcher.
Certain vanilla weapons and enemies have likewise been rebalanced slightly:
* The pistol has unlimited ammo to ensure the player always has a fallback weapon.
* The shotgun fires a bit faster so that it stays useful even after the player collects the SSG.
* The BFG now uses a separate ammo type from the plasma rifle.
=== Graphics & Sound ===
New visual effects have been added, with the most notable additions being improved explosions, particle effects, and dynamic lighting and screenshake for when the player fires his weapons. Campaign maps have color tinting applied for enhanced atmosphere.
The mod incorporates the PlayStation Doom sound effects for most weapons, enemies, and environmental effects.
=== Levels ===
All four official IWADs have been condensed into a single 12-map episode consisting of the most memorable and best levels from each campaign. This allows the player to experience the best parts of each campaign without having to grind through the subpar portions.
It is possible that additional episodes consisting of condensed versions of other campaigns, such as classic megawads, will be added in future updates.
[[Category:Mods And Assets]]
[[Category:Mods And Assets]]
e1e8d704ca2cb436407a236c1d5abc9a0d5dfcd8
456
455
2025-11-08T20:13:07Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{ModInfo
|title= Absolute Doom
|image=
|Author= GoreMaxxed Productions
|Release Date= TBA
|Iwad Required= doom2.iwad
|Engine= UZDoom
|Development Status=
|Gameplay Modifications=
|New Levels=
|New Graphics=
|New Music=
|New Sounds=
|New Weapons=
|New Enemies=
|Website=
|ModDB=
}}
Absolute Doom is the flagship mod of hardcoredoom.com. It originally began as several separate mods called Hardcore Doom, Definitive Doom, and Project ReTexture, but these were eventually merged for the sake of simplicity. The mod combines the best levels from each official IWAD into a series of condensed campaigns, adds new weapons and enemies, improves visual presentation with enhanced VFX and other effects, and replaces textures with higher quality re-imaginings.
== Overview ==
=== Gameplay ===
Absolute Doom does not stray too far away from vanilla gameplay, being more akin to an enhanced version of the original with an expanded weapon and monster roster.
The mod introduces six new weapons:
* Shock Knuckles - Generates splash damage when the player punches enemies.
* Revolver - Revolver that offers higher damage per shot than the pistol,
* Uber-Shotgun - Quad-barrel version of the SSG.
* Assault Rifle - More accurate and deadlier than the chaingun but with lower ammo capacity.
* Plasma SMG - Worse spread than the regular plasma gun but does more damage at close and medium rages.
* Swarm Missiles - A hand-held swarm missile launcher.
Certain vanilla weapons and enemies have likewise been rebalanced slightly:
* The pistol has unlimited ammo to ensure the player always has a fallback weapon.
* The shotgun fires a bit faster so that it stays useful even after the player collects the SSG.
* The BFG now uses a separate ammo type from the plasma rifle.
=== Graphics & Sound ===
New visual effects have been added, with the most notable additions being improved explosions, particle effects, and dynamic lighting and screenshake for when the player fires his weapons. Campaign maps have color tinting applied for enhanced atmosphere.
The mod incorporates the PlayStation Doom sound effects for most weapons, enemies, and environmental effects.
=== Levels ===
All four official IWADs have been condensed into a single 12-map episode consisting of the most memorable and best levels from each campaign. This allows the player to experience the best parts of each campaign without having to grind through the subpar portions.
It is possible that additional episodes consisting of condensed versions of other campaigns, such as classic megawads, will be added in future updates.
[[Category:Mods And Assets]]
[[Category:Mods And Assets]]
c0fb90c5e8ac18bfbefceb8823e34e00552c89a3
458
456
2025-11-08T20:18:26Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{ModInfo Infobox
|title= Absolute Doom
|image=
|Author= GoreMaxxed Productions
|Release Date= TBA
|Iwad Required= doom2.iwad
|Engine= UZDoom
|Development Status=
|Gameplay Modifications=
|New Levels=
|New Graphics=
|New Music=
|New Sounds=
|New Weapons=
|New Enemies=
|Website=
|ModDB=
}}
Absolute Doom is the flagship mod of hardcoredoom.com. It originally began as several separate mods called Hardcore Doom, Definitive Doom, and Project ReTexture, but these were eventually merged for the sake of simplicity. The mod combines the best levels from each official IWAD into a series of condensed campaigns, adds new weapons and enemies, improves visual presentation with enhanced VFX and other effects, and replaces textures with higher quality re-imaginings.
== Overview ==
=== Gameplay ===
Absolute Doom does not stray too far away from vanilla gameplay, being more akin to an enhanced version of the original with an expanded weapon and monster roster.
The mod introduces six new weapons:
* Shock Knuckles - Generates splash damage when the player punches enemies.
* Revolver - Revolver that offers higher damage per shot than the pistol,
* Uber-Shotgun - Quad-barrel version of the SSG.
* Assault Rifle - More accurate and deadlier than the chaingun but with lower ammo capacity.
* Plasma SMG - Worse spread than the regular plasma gun but does more damage at close and medium rages.
* Swarm Missiles - A hand-held swarm missile launcher.
Certain vanilla weapons and enemies have likewise been rebalanced slightly:
* The pistol has unlimited ammo to ensure the player always has a fallback weapon.
* The shotgun fires a bit faster so that it stays useful even after the player collects the SSG.
* The BFG now uses a separate ammo type from the plasma rifle.
=== Graphics & Sound ===
New visual effects have been added, with the most notable additions being improved explosions, particle effects, and dynamic lighting and screenshake for when the player fires his weapons. Campaign maps have color tinting applied for enhanced atmosphere.
The mod incorporates the PlayStation Doom sound effects for most weapons, enemies, and environmental effects.
=== Levels ===
All four official IWADs have been condensed into a single 12-map episode consisting of the most memorable and best levels from each campaign. This allows the player to experience the best parts of each campaign without having to grind through the subpar portions.
It is possible that additional episodes consisting of condensed versions of other campaigns, such as classic megawads, will be added in future updates.
[[Category:Mods And Assets]]
[[Category:Mods And Assets]]
6ac193bf1239bfdeb0c4bb4b0738a9a9281b07e1
459
458
2025-11-08T20:20:44Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{ModInfo Infobox
|title= Absolute Doom
|image=
|Author= GoreMaxxed Productions
|Release Date= TBA
|Iwad Required= doom2.iwad
|Engine= UZDoom
|Development Status=
|Gameplay Modifications=
|New Levels= Yes (4+ episodes)
|New Graphics= Yes
|New Music= Yes
|New Sounds= Yes
|New Weapons= Yes
|New Enemies= Yes
|Website=
|ModDB=
}}
Absolute Doom is the flagship mod of hardcoredoom.com. It originally began as several separate mods called Hardcore Doom, Definitive Doom, and Project ReTexture, but these were eventually merged for the sake of simplicity. The mod combines the best levels from each official IWAD into a series of condensed campaigns, adds new weapons and enemies, improves visual presentation with enhanced VFX and other effects, and replaces textures with higher quality re-imaginings.
== Overview ==
=== Gameplay ===
Absolute Doom does not stray too far away from vanilla gameplay, being more akin to an enhanced version of the original with an expanded weapon and monster roster.
The mod introduces six new weapons:
* Shock Knuckles - Generates splash damage when the player punches enemies.
* Revolver - Revolver that offers higher damage per shot than the pistol,
* Uber-Shotgun - Quad-barrel version of the SSG.
* Assault Rifle - More accurate and deadlier than the chaingun but with lower ammo capacity.
* Plasma SMG - Worse spread than the regular plasma gun but does more damage at close and medium rages.
* Swarm Missiles - A hand-held swarm missile launcher.
Certain vanilla weapons and enemies have likewise been rebalanced slightly:
* The pistol has unlimited ammo to ensure the player always has a fallback weapon.
* The shotgun fires a bit faster so that it stays useful even after the player collects the SSG.
* The BFG now uses a separate ammo type from the plasma rifle.
=== Graphics & Sound ===
New visual effects have been added, with the most notable additions being improved explosions, particle effects, and dynamic lighting and screenshake for when the player fires his weapons. Campaign maps have color tinting applied for enhanced atmosphere.
The mod incorporates the PlayStation Doom sound effects for most weapons, enemies, and environmental effects.
=== Levels ===
All four official IWADs have been condensed into a single 12-map episode consisting of the most memorable and best levels from each campaign. This allows the player to experience the best parts of each campaign without having to grind through the subpar portions.
It is possible that additional episodes consisting of condensed versions of other campaigns, such as classic megawads, will be added in future updates.
[[Category:Mods And Assets]]
[[Category:Mods And Assets]]
ef75fea519428350ad8d1e05233fbb5c0dd542f8
460
459
2025-11-08T20:26:51Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{ModInfo Infobox
|title= Absolute Doom
|image= DoomCover.jpg
|Author= GoreMaxxed Productions
|Release Date= TBA
|Iwad Required= doom2.iwad
|Engine= UZDoom
|Development Status=
|Gameplay Modifications=
|New Levels= Yes (4+ episodes)
|New Graphics= Yes
|New Music= Yes
|New Sounds= Yes
|New Weapons= Yes
|New Enemies= Yes
|Website=
|ModDB=
}}
Absolute Doom is the flagship mod of hardcoredoom.com. It originally began as several separate mods called Hardcore Doom, Definitive Doom, and Project ReTexture, but these were eventually merged for the sake of simplicity. The mod combines the best levels from each official IWAD into a series of condensed campaigns, adds new weapons and enemies, improves visual presentation with enhanced VFX and other effects, and replaces textures with higher quality re-imaginings.
== Overview ==
=== Gameplay ===
Absolute Doom does not stray too far away from vanilla gameplay, being more akin to an enhanced version of the original with an expanded weapon and monster roster.
The mod introduces six new weapons:
* Shock Knuckles - Generates splash damage when the player punches enemies.
* Revolver - Revolver that offers higher damage per shot than the pistol,
* Uber-Shotgun - Quad-barrel version of the SSG.
* Assault Rifle - More accurate and deadlier than the chaingun but with lower ammo capacity.
* Plasma SMG - Worse spread than the regular plasma gun but does more damage at close and medium rages.
* Swarm Missiles - A hand-held swarm missile launcher.
Certain vanilla weapons and enemies have likewise been rebalanced slightly:
* The pistol has unlimited ammo to ensure the player always has a fallback weapon.
* The shotgun fires a bit faster so that it stays useful even after the player collects the SSG.
* The BFG now uses a separate ammo type from the plasma rifle.
=== Graphics & Sound ===
New visual effects have been added, with the most notable additions being improved explosions, particle effects, and dynamic lighting and screenshake for when the player fires his weapons. Campaign maps have color tinting applied for enhanced atmosphere.
The mod incorporates the PlayStation Doom sound effects for most weapons, enemies, and environmental effects.
=== Levels ===
All four official IWADs have been condensed into a single 12-map episode consisting of the most memorable and best levels from each campaign. This allows the player to experience the best parts of each campaign without having to grind through the subpar portions.
It is possible that additional episodes consisting of condensed versions of other campaigns, such as classic megawads, will be added in future updates.
[[Category:Mods And Assets]]
[[Category:Mods And Assets]]
5fdb3b8437cb63712239c4510a07820e96f2e717
462
460
2025-11-08T21:07:00Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{ModInfo Infobox
|title= Absolute Doom
|image= DoomCover.jpg
|Author= GoreMaxxed Productions
|Release Date= TBA
|Iwad Required= doom2.iwad
|Engine= UZDoom
|Development Status=
|Gameplay Modifications=
|New Levels= Yes (4+ episodes)
|New Graphics= Yes
|New Music= Yes
|New Sounds= Yes
|New Weapons= Yes
|New Enemies= Yes
|Website=
|ModDB=
}}
Absolute Doom is the flagship mod of hardcoredoom.com. It originally began as several separate mods called Hardcore Doom, Definitive Doom, and Project ReTexture, but these were eventually merged for the sake of simplicity. The mod combines the best levels from each official IWAD into a series of condensed campaigns, adds new weapons and enemies, improves visual presentation with enhanced VFX and other effects, and replaces textures with higher quality re-imaginings.
== Overview ==
=== Gameplay ===
Absolute Doom does not stray too far away from vanilla gameplay, being more akin to an enhanced version of the original with an expanded weapon and monster roster.
The mod introduces six new weapons:
* [[Shock Knuckles]] - Generates splash damage when the player punches enemies.
* [[Revolver]] - Revolver that offers higher damage per shot than the pistol,
* [[Uber-Shotgun]] - Quad-barrel version of the SSG.
* [[Assault Rifle]] - More accurate and deadlier than the chaingun but with lower ammo capacity.
* [[Plasma SMG]] - Worse spread than the regular plasma gun but does more damage at close and medium rages.
* [[Swarm Missiles]] - A hand-held swarm missile launcher.
Certain vanilla weapons and enemies have likewise been rebalanced slightly:
* The pistol has unlimited ammo to ensure the player always has a fallback weapon.
* The shotgun fires a bit faster so that it stays useful even after the player collects the SSG.
* The BFG now uses a separate ammo type from the plasma rifle.
=== Graphics & Sound ===
New visual effects have been added, with the most notable additions being improved explosions, particle effects, and dynamic lighting and screenshake for when the player fires his weapons. Campaign maps have color tinting applied for enhanced atmosphere.
The mod incorporates the PlayStation Doom sound effects for most weapons, enemies, and environmental effects.
=== Levels ===
All four official IWADs have been condensed into a single 12-map episode consisting of the most memorable and best levels from each campaign. This allows the player to experience the best parts of each campaign without having to grind through the subpar portions.
It is possible that additional episodes consisting of condensed versions of other campaigns, such as classic megawads, will be added in future updates.
[[Category:Mods And Assets]]
50984018a3f0c25f0abbab4b44fd359b7a27117f
484
462
2025-11-08T22:25:48Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{ModInfo Infobox
|title= Absolute Doom
|image= DoomCover.jpg
|Author= GoreMaxxed Productions
|Release Date= TBA
|Iwad Required= doom2.iwad
|Engine= UZDoom
|Development Status=
|Gameplay Modifications=
|New Levels= Yes (4+ episodes)
|New Graphics= Yes
|New Music= Yes
|New Sounds= Yes
|New Weapons= Yes
|New Enemies= Yes
|Website=
|ModDB=
}}
Absolute Doom is the flagship mod of hardcoredoom.com. It originally began as several separate mods called Hardcore Doom, Definitive Doom, and Project ReTexture, but these were eventually merged for the sake of simplicity. The mod combines the best levels from each official IWAD into a series of condensed campaigns, adds new weapons and enemies, improves visual presentation with enhanced VFX and other effects, and replaces textures with higher quality re-imaginings.
== Overview ==
=== Gameplay ===
Absolute Doom does not stray too far away from vanilla gameplay, being more akin to an enhanced version of the original with an expanded weapon and monster roster.
The mod introduces six new weapons:
* [[Shock Knuckles]] - Generates splash damage when the player punches enemies.
* [[Revolver]] - Revolver that offers higher damage per shot than the pistol,
* [[Uber-Shotgun]] - Quad-barrel version of the SSG.
* [[Assault Rifle]] - More accurate and deadlier than the chaingun but with lower ammo capacity.
* [[Plasma SMG]] - Worse spread than the regular plasma gun but does more damage at close and medium ranges.
* [[Swarm Missiles]] - A hand-held swarm missile launcher.
Certain vanilla weapons and enemies have likewise been rebalanced slightly:
* The pistol has unlimited ammo to ensure the player always has a fallback weapon.
* The shotgun fires a bit faster so that it stays useful even after the player collects the SSG.
* The BFG now uses a separate ammo type from the plasma rifle.
=== Graphics & Sound ===
New visual effects have been added, with the most notable additions being improved explosions, particle effects, and dynamic lighting and screenshake for when the player fires his weapons. Campaign maps have color tinting applied for enhanced atmosphere.
The mod incorporates the PlayStation Doom sound effects for most weapons, enemies, and environmental effects.
=== Levels ===
All four official IWADs have been condensed into a single 12-map episode consisting of the most memorable and best levels from each campaign. This allows the player to experience the best parts of each campaign without having to grind through the subpar portions.
It is possible that additional episodes consisting of condensed versions of other campaigns, such as classic megawads, will be added in future updates.
[[Category:Mods And Assets]]
d6b68e629a01493043f106d123ea14312b43c5b6
487
484
2025-11-08T22:28:41Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{ModInfo Infobox
|title= Absolute Doom
|image= DoomCover.jpg
|Author= GoreMaxxed Productions
|Release Date= TBA
|Current Version= NA
|Iwad Required= doom2.iwad
|Engine= UZDoom
|Development Status=
|Gameplay Modifications=
|New Levels= Yes (4+ episodes)
|New Graphics= Yes
|New Music= Yes
|New Sounds= Yes
|New Weapons= Yes
|New Enemies= Yes
|Website=
|ModDB=
}}
Absolute Doom is the flagship mod of hardcoredoom.com. It originally began as several separate mods called Hardcore Doom, Definitive Doom, and Project ReTexture, but these were eventually merged for the sake of simplicity. The mod combines the best levels from each official IWAD into a series of condensed campaigns, adds new weapons and enemies, improves visual presentation with enhanced VFX and other effects, and replaces textures with higher quality re-imaginings.
== Overview ==
=== Gameplay ===
Absolute Doom does not stray too far away from vanilla gameplay, being more akin to an enhanced version of the original with an expanded weapon and monster roster.
The mod introduces six new weapons:
* [[Shock Knuckles]] - Generates splash damage when the player punches enemies.
* [[Revolver]] - Revolver that offers higher damage per shot than the pistol,
* [[Uber-Shotgun]] - Quad-barrel version of the SSG.
* [[Assault Rifle]] - More accurate and deadlier than the chaingun but with lower ammo capacity.
* [[Plasma SMG]] - Worse spread than the regular plasma gun but does more damage at close and medium ranges.
* [[Swarm Missiles]] - A hand-held swarm missile launcher.
Certain vanilla weapons and enemies have likewise been rebalanced slightly:
* The pistol has unlimited ammo to ensure the player always has a fallback weapon.
* The shotgun fires a bit faster so that it stays useful even after the player collects the SSG.
* The BFG now uses a separate ammo type from the plasma rifle.
=== Graphics & Sound ===
New visual effects have been added, with the most notable additions being improved explosions, particle effects, and dynamic lighting and screenshake for when the player fires his weapons. Campaign maps have color tinting applied for enhanced atmosphere.
The mod incorporates the PlayStation Doom sound effects for most weapons, enemies, and environmental effects.
=== Levels ===
All four official IWADs have been condensed into a single 12-map episode consisting of the most memorable and best levels from each campaign. This allows the player to experience the best parts of each campaign without having to grind through the subpar portions.
It is possible that additional episodes consisting of condensed versions of other campaigns, such as classic megawads, will be added in future updates.
[[Category:Mods And Assets]]
a8f54536aa5d16e97451d2785a164c3f899b2355
488
487
2025-11-08T22:32:56Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{ModInfo Infobox
|title= Absolute Doom
|image= DoomCover.jpg
|Author(s)= GoreMaxxed Productions
|Release Date= TBA
|Current Version= NA
|Iwad Required= doom2.iwad
|Engine= UZDoom
|Development Status= Active
|Gameplay Modifications=
|New Levels= Yes (4+ episodes)
|New Graphics= Yes
|New Music= Yes
|New Sounds= Yes
|New Weapons= Yes
|New Enemies= Yes
|Website= NA
|ModDB= NA
}}
Absolute Doom is the flagship mod of hardcoredoom.com. It originally began as several separate mods called Hardcore Doom, Definitive Doom, and Project ReTexture, but these were eventually merged for the sake of simplicity. The mod combines the best levels from each official IWAD into a series of condensed campaigns, adds new weapons and enemies, improves visual presentation with enhanced VFX and other effects, and replaces textures with higher quality re-imaginings.
== Overview ==
=== Gameplay ===
Absolute Doom does not stray too far away from vanilla gameplay, being more akin to an enhanced version of the original with an expanded weapon and monster roster.
The mod introduces six new weapons:
* [[Shock Knuckles]] - Generates splash damage when the player punches enemies.
* [[Revolver]] - Revolver that offers higher damage per shot than the pistol,
* [[Uber-Shotgun]] - Quad-barrel version of the SSG.
* [[Assault Rifle]] - More accurate and deadlier than the chaingun but with lower ammo capacity.
* [[Plasma SMG]] - Worse spread than the regular plasma gun but does more damage at close and medium ranges.
* [[Swarm Missiles]] - A hand-held swarm missile launcher.
Certain vanilla weapons and enemies have likewise been rebalanced slightly:
* The pistol has unlimited ammo to ensure the player always has a fallback weapon.
* The shotgun fires a bit faster so that it stays useful even after the player collects the SSG.
* The BFG now uses a separate ammo type from the plasma rifle.
=== Graphics & Sound ===
New visual effects have been added, with the most notable additions being improved explosions, particle effects, and dynamic lighting and screenshake for when the player fires his weapons. Campaign maps have color tinting applied for enhanced atmosphere.
The mod incorporates the PlayStation Doom sound effects for most weapons, enemies, and environmental effects.
=== Levels ===
All four official IWADs have been condensed into a single 12-map episode consisting of the most memorable and best levels from each campaign. This allows the player to experience the best parts of each campaign without having to grind through the subpar portions.
It is possible that additional episodes consisting of condensed versions of other campaigns, such as classic megawads, will be added in future updates.
[[Category:Mods And Assets]]
8e8e5cac19fa0c2b505adbb16e2b2daa275ee786
489
488
2025-11-08T22:34:01Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{ModInfo Infobox
|title= Absolute Doom
|image= DoomCover.jpg
|Author(s)= GoreMaxxed Productions
|Release Date= TBA
|Current Version= 0.1 (dev build)
|Iwad Required= doom2.iwad
|Engine= UZDoom
|Development Status= Active
|Gameplay Modifications=
|New Levels= Yes (4+ episodes)
|New Graphics= Yes
|New Music= Yes
|New Sounds= Yes
|New Weapons= Yes
|New Enemies= Yes
|Website= TBA
|ModDB= TBA
}}
Absolute Doom is the flagship mod of hardcoredoom.com. It originally began as several separate mods called Hardcore Doom, Definitive Doom, and Project ReTexture, but these were eventually merged for the sake of simplicity. The mod combines the best levels from each official IWAD into a series of condensed campaigns, adds new weapons and enemies, improves visual presentation with enhanced VFX and other effects, and replaces textures with higher quality re-imaginings.
== Overview ==
=== Gameplay ===
Absolute Doom does not stray too far away from vanilla gameplay, being more akin to an enhanced version of the original with an expanded weapon and monster roster.
The mod introduces six new weapons:
* [[Shock Knuckles]] - Generates splash damage when the player punches enemies.
* [[Revolver]] - Revolver that offers higher damage per shot than the pistol,
* [[Uber-Shotgun]] - Quad-barrel version of the SSG.
* [[Assault Rifle]] - More accurate and deadlier than the chaingun but with lower ammo capacity.
* [[Plasma SMG]] - Worse spread than the regular plasma gun but does more damage at close and medium ranges.
* [[Swarm Missiles]] - A hand-held swarm missile launcher.
Certain vanilla weapons and enemies have likewise been rebalanced slightly:
* The pistol has unlimited ammo to ensure the player always has a fallback weapon.
* The shotgun fires a bit faster so that it stays useful even after the player collects the SSG.
* The BFG now uses a separate ammo type from the plasma rifle.
=== Graphics & Sound ===
New visual effects have been added, with the most notable additions being improved explosions, particle effects, and dynamic lighting and screenshake for when the player fires his weapons. Campaign maps have color tinting applied for enhanced atmosphere.
The mod incorporates the PlayStation Doom sound effects for most weapons, enemies, and environmental effects.
=== Levels ===
All four official IWADs have been condensed into a single 12-map episode consisting of the most memorable and best levels from each campaign. This allows the player to experience the best parts of each campaign without having to grind through the subpar portions.
It is possible that additional episodes consisting of condensed versions of other campaigns, such as classic megawads, will be added in future updates.
[[Category:Mods And Assets]]
88ec736dd26a1ae7ee7712467b513551c016e3a6
Template:ModInfo Infobox/doc
10
324
453
451
2025-11-08T19:10:09Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This is an example ModInfo infobox using the DRUID infobox framework.
= Copyable code for use on other content pages =
If you want to create pages using this infobox, you can copy the code below. This code is for CONTENT PAGES ONLY. It does not have anything to do with changing what the template supports. A field can be left empty if the data for it is not needed.
== Example Code ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{ModInfo
|title= Mod Title
|image= ImageFileName.png
|Author= Author name
|Release Date= Whatever release date
|Iwad Required= The game iwad file needed to load the mod
|Engine= Game engine needed for the mod and the latest version know to work
|Development Status= Is the mod active or dead? E.g. 'Active, Hiatus, Dead, etc.'
|Gameplay Modifications= Yes or No
|New Levels= Yes or No (if yes, specify how many)
|New Graphics= Yes or No
|New Music= Yes or No
|New Sounds= Yes or No
|New Weapons= Yes or No
|New Enemies= Yes or No
|Website= Insert team/project website if there is one
|ModDB= Insert modDB page if there is one
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
== Clean Version ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{ModInfo
|title=
|image=
|Author=
|Release Date=
|Iwad Required=
|Engine=
|Development Status=
|Gameplay Modifications=
|New Levels=
|New Graphics=
|New Music=
|New Sounds=
|New Weapons=
|New Enemies=
|Website=
|ModDB=
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
54d9b94a9986087235c3306d081d63a678ae160b
465
453
2025-11-08T21:31:18Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This is an example ModInfo infobox using the DRUID infobox framework.
= Copyable code for use on other content pages =
If you want to create pages using this infobox, you can copy the code below. This code is for CONTENT PAGES ONLY. It does not have anything to do with changing what the template supports. A field can be left empty if the data for it is not needed.
== Example Code ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{ModInfo Infobox
|title= Mod Title
|image= ImageFileName.png
|Author= Author name
|Release Date= Whatever release date
|Iwad Required= The game iwad file needed to load the mod
|Engine= Game engine needed for the mod and the latest version know to work
|Development Status= Is the mod active or dead? E.g. 'Active, Hiatus, Dead, etc.'
|Gameplay Modifications= Yes or No
|New Levels= Yes or No (if yes, specify how many)
|New Graphics= Yes or No
|New Music= Yes or No
|New Sounds= Yes or No
|New Weapons= Yes or No
|New Enemies= Yes or No
|Website= Insert team/project website if there is one
|ModDB= Insert modDB page if there is one
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
== Clean Version ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{ModInfo Infobox
|title=
|image=
|Author=
|Release Date=
|Iwad Required=
|Engine=
|Development Status=
|Gameplay Modifications=
|New Levels=
|New Graphics=
|New Music=
|New Sounds=
|New Weapons=
|New Enemies=
|Website=
|ModDB=
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
9326ae8714db787a98436a4d2102244ed668d1b0
486
465
2025-11-08T22:28:24Z
MasterOfDisillusionment
431405
/* Copyable code for use on other content pages */
wikitext
text/x-wiki
This is an example ModInfo infobox using the DRUID infobox framework.
= Copyable code for use on other content pages =
If you want to create pages using this infobox, you can copy the code below. This code is for CONTENT PAGES ONLY. It does not have anything to do with changing what the template supports. A field can be left empty if the data for it is not needed.
== Example Code ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{ModInfo Infobox
|title= Mod Title
|image= ImageFileName.png
|Author= Author name
|Release Date= Whatever release date
|Current Version= Latest version of the mod
|Iwad Required= The game iwad file needed to load the mod
|Engine= Game engine needed for the mod and the latest version know to work
|Development Status= Is the mod active or dead? E.g. 'Active, Hiatus, Dead, etc.'
|Gameplay Modifications= Yes or No
|New Levels= Yes or No (if yes, specify how many)
|New Graphics= Yes or No
|New Music= Yes or No
|New Sounds= Yes or No
|New Weapons= Yes or No
|New Enemies= Yes or No
|Website= Insert team/project website if there is one
|ModDB= Insert modDB page if there is one
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
== Clean Version ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{ModInfo Infobox
|title=
|image=
|Author=
|Release Date=
|Current Version=
|Iwad Required=
|Engine=
|Development Status=
|Gameplay Modifications=
|New Levels=
|New Graphics=
|New Music=
|New Sounds=
|New Weapons=
|New Enemies=
|Website=
|ModDB=
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
433276e01509e565aaa92f00ebc15e159abbf4a4
Template:ModInfo Infobox
10
320
454
450
2025-11-08T19:49:32Z
RheingoldRiver
2743
wikitext
text/x-wiki
<includeonly>{{#invoke:Infobox|main
|kind=ModInfo
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Features, External Links
|General Info=Author(s), Release Date, Iwad Required, Engine, Development Status
|Features=Gameplay Modifications, New Levels, New Graphics, New Music, New Sounds, New Weapons, New Enemies
|External Links=Website, ModDB
}}</includeonly><noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
6572d90f07378197f860d07578f9db69ff6bba25
457
454
2025-11-08T20:18:06Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
<includeonly>{{#invoke:Infobox|main
|kind=ModInfo Infobox
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Features, External Links
|General Info=Author(s), Release Date, Iwad Required, Engine, Development Status
|Features=Gameplay Modifications, New Levels, New Graphics, New Music, New Sounds, New Weapons, New Enemies
|External Links=Website, ModDB
}}</includeonly><noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
0756ab557d116595071c6d0e8c2e3bd2eb1da6ca
485
457
2025-11-08T22:27:48Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
<includeonly>{{#invoke:Infobox|main
|kind=ModInfo Infobox
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Features, External Links
|General Info=Author(s), Release Date, Current Version, Iwad Required, Engine, Development Status
|Features=Gameplay Modifications, New Levels, New Graphics, New Music, New Sounds, New Weapons, New Enemies
|External Links=Website, ModDB
}}</includeonly><noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
f423510c04a9fcff324e1791f4954bf230a7f903
Doom
0
306
461
374
2025-11-08T20:30:01Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{GameInfo Infobox
|title= Doom
|image= DoomCover.jpg
|Release date= 1993
|Engine= id Tech 1
|Setting/Theme= Sci-fi military, satanic.
|Latest Version= 1.9
|Developer(s)= id Software
|Publisher(s)= id Software
|Mod support= Extensive; source port is public and numerous tools exist.
|Notable mods/total conversions= * Brutal Doom
* Final Doomer+
* Plutona 2
|Official website=
|Steam page= [[https://store.steampowered.com/app/2280/DOOM__DOOM_II/| DOOM & DOOM II]]
|GOG page= [[https://www.gog.com/en/game/doom_doom_ii| DOOM & DOOM II]]
|ModDB page=
}}
Doom is a first person shooter action game created by Id Software and published in 1993.
= Gameplay =
== Mechanics ==
Insert Content.
== Weapons ==
Insert Content.
== Enemies ==
Insert Content.
== Levels ==
Insert Content.
= Setting and Story=
== Plot ==
Insert Content.
== Characters ==
Insert Content.
= Design =
== Graphics & Audio ==
Insert Content.
== Visuals ==
Insert Content.
= Development History =
== Early Concepts ==
Insert Content.
== Beta ==
Insert Content.
== Final Build ==
Insert Content.
[[Category:Game Information]]
16f8deb64606469f5debfd773e80ed1279f30ffb
Assault Rifle
0
325
463
2025-11-08T21:08:12Z
MasterOfDisillusionment
431405
Created page with "The assault riffle is a new weapon featured in the [[Absolute Doom]] mod. [[Category:Mods And Assets]]"
wikitext
text/x-wiki
The assault riffle is a new weapon featured in the [[Absolute Doom]] mod.
[[Category:Mods And Assets]]
02f9215f5de3506f678447294e750e29759c9289
469
463
2025-11-08T22:00:05Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{WeaponInfo Infobox
|title= Assault Rifle
|image=
|Author/Mod= Absolute Doom
|Slot= 3
|Usage Rights= Must Give Credit
|Weapon Type= Hitscan
|Ammo Type= Magazine
|Primary Fire= Auto-fire
|Secondary Fire=
|Requires Reloading= No
|Ammo Capacity= 100
|Damage= 15 per bullet
|Rate of Fire= High
|Accuracy= High
|Range=
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
The assault riffle is a new weapon featured in the [[Absolute Doom]] mod.
[[Category:Mods And Assets]]
ec6b8ba05ea45d3085384025b28c3d77d3d6eb89
473
469
2025-11-08T22:05:21Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{WeaponInfo Infobox
|title= Assault Rifle
|image= WeaponAssaultRifle.png
|Author/Mod= Absolute Doom
|Slot= 3
|Usage Rights= Must Give Credit
|Weapon Type= Hitscan
|Ammo Type= Magazine
|Primary Fire= Auto-fire
|Secondary Fire=
|Requires Reloading= No
|Ammo Capacity= 100
|Damage= 15 per bullet
|Rate of Fire= High
|Accuracy= High
|Range=
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
The assault riffle is a new weapon featured in the [[Absolute Doom]] mod.
[[Category:Mods And Assets]]
44437f8678d71706378c5d62be9928d8c0f35a06
476
473
2025-11-08T22:08:45Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{WeaponInfo Infobox
|title= Assault Rifle
|image= WeaponAssaultRifle.png
|Author= GoreMaxxed Productions
|Mod= Absolute Doom
|Slot= 3
|Usage Rights= Must Give Credit
|Weapon Type= Hitscan
|Ammo Type= Magazine
|Primary Fire= Auto-fire
|Secondary Fire=
|Requires Reloading= No
|Ammo Capacity= 100
|Damage= 15 per bullet
|Rate of Fire= High
|Accuracy= High
|Range=
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
The assault riffle is a new weapon featured in the [[Absolute Doom]] mod.
[[Category:Mods And Assets]]
fc763edfa3b0e8f3e59f3a5117c36e014debe0ac
477
476
2025-11-08T22:11:49Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{WeaponInfo Infobox
|title= Assault Rifle
|image= WeaponAssaultRifle.png
|Author= [[GoreMaxxed Productions]]
|Mod= [[Absolute Doom]]
|Slot= 3
|Usage Rights= Must Give Credit
|Weapon Type= Hitscan
|Ammo Type= Magazine
|Primary Fire= Auto-fire
|Secondary Fire=
|Requires Reloading= No
|Ammo Capacity= 100
|Damage= 15 per bullet
|Rate of Fire= High
|Accuracy= High
|Range=
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
The assault rifle is a new weapon featured in the [[Absolute Doom]] mod.
[[Category:Mods And Assets]]
0158fc89e406c83513d845ad1513f615a5689612
480
477
2025-11-08T22:16:19Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{WeaponInfo Infobox
|title= Assault Rifle
|image= WeaponAssaultRifle.png
|Author= [[GoreMaxxed Productions]]
|Mod= [[Absolute Doom]]
|Usage Rights= Must Give Credit
|Weapon Type= Hitscan
|Ammo Type= Magazine
|Primary Fire= Auto-fire
|Secondary Fire=
|Requires Reloading= No
|Slot= 3
|Ammo Capacity= 100
|Damage= 15 per bullet
|Rate of Fire= High
|Accuracy= High
|Range=
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
The assault rifle is a new weapon featured in the [[Absolute Doom]] mod.
[[Category:Mods And Assets]]
05d048b31bff27d9fda8cc87e34fdd12720084d6
481
480
2025-11-08T22:21:49Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{WeaponInfo Infobox
|title= Assault Rifle
|image= WeaponAssaultRifle.png
|Author= [[GoreMaxxed Productions]]
|Mod= [[Absolute Doom]]
|Usage Rights= Must Give Credit
|Weapon Type= Hitscan
|Ammo Type= Magazine
|Primary Fire= Auto-fire
|Secondary Fire=
|Requires Reloading= No
|Slot= 3
|Ammo Capacity= 100
|Damage= 15 per bullet
|Rate of Fire= High
|Accuracy= High
|Range=
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
The assault rifle is a new weapon featured in the [[Absolute Doom]] mod.
[[Category:Weapons]]
cf75bd669832723110e581dd04999052d6b1f9c6
497
481
2025-11-09T14:13:01Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{WeaponInfo Infobox
|title= Assault Rifle
|image= WeaponAssaultRifle.png
|Author= [[GoreMaxxed Productions]]
|Mod= [[Absolute Doom]]
|Usage Rights= Must Give Credit
|Weapon Type= Hitscan
|Ammo Type= Magazine
|Primary Fire= Auto-fire
|Secondary Fire=
|Requires Reloading= No
|Radius= 16
|Height= 25
|Slot= 3
|Ammo Capacity= 100
|Damage= 15 per bullet
|Rate of Fire= High
|Accuracy= High
|Range=
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
The assault rifle is a new weapon featured in the [[Absolute Doom]] mod.
[[Category:Weapons]]
f06e78ddbeb79235c14f13d5a2cfad97fd85fa45
Template:WeaponInfo Infobox
10
326
464
2025-11-08T21:29:45Z
MasterOfDisillusionment
431405
Created page with "<includeonly>{{#invoke:Infobox|main |kind=WeaponInfo Infobox |sep=, |image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}} |sections=General Info, Behavior, Stats, External Links |General Info=Author/Mod, Slot, Usage Rights |Behavior=Weapon Type, Ammo Type, Primary Fire, Secondary Fire, Needs Reload |Stats=Damage, Rate of Fire, Accuracy, Range |External Links=ModDB, Realm667, Website, Forum Thread }}</includeonly><noinclude> {{documentation}} Category:Infobox tem..."
wikitext
text/x-wiki
<includeonly>{{#invoke:Infobox|main
|kind=WeaponInfo Infobox
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Behavior, Stats, External Links
|General Info=Author/Mod, Slot, Usage Rights
|Behavior=Weapon Type, Ammo Type, Primary Fire, Secondary Fire, Needs Reload
|Stats=Damage, Rate of Fire, Accuracy, Range
|External Links=ModDB, Realm667, Website, Forum Thread
}}</includeonly><noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
6282ec57f28d5ea9784348b352d4eb21cb228aec
466
464
2025-11-08T21:39:31Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
<includeonly>{{#invoke:Infobox|main
|kind=WeaponInfo Infobox
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Behavior, Stats, External Links
|General Info=Author/Mod, Slot, Usage Rights
|Behavior=Weapon Type, Ammo Type, Primary Fire, Secondary Fire, Requires Reloading
|Stats=Damage, Rate of Fire, Accuracy, Range
|External Links=ModDB, Realm667, Website, Forum Thread
}}</includeonly><noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
dc65cbadb9f47fe785e5e67382df94ca58217f4b
467
466
2025-11-08T21:45:41Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
<includeonly>{{#invoke:Infobox|main
|kind=WeaponInfo Infobox
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Behavior, Stats, External Links
|General Info=Author/Mod, Slot, Usage Rights
|Behavior=Weapon Type, Ammo Type, Primary Fire, Secondary Fire, Requires Reloading
|Stats=Ammo Capacity, Damage, Rate of Fire, Accuracy, Range
|External Links=ModDB, Realm667, Website, Forum Thread
}}</includeonly><noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
e02762a015b31adf922fb74dd49551f43f77df1e
474
467
2025-11-08T22:06:39Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
<includeonly>{{#invoke:Infobox|main
|kind=WeaponInfo Infobox
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Behavior, Stats, External Links
|General Info=Author, Mod, Slot, Usage Rights
|Behavior=Weapon Type, Ammo Type, Primary Fire, Secondary Fire, Requires Reloading
|Stats=Ammo Capacity, Damage, Rate of Fire, Accuracy, Range
|External Links=ModDB, Realm667, Website, Forum Thread
}}</includeonly><noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
a3627231bd578fb35ffda62f2ee78f4914a2d9a2
479
474
2025-11-08T22:16:05Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
<includeonly>{{#invoke:Infobox|main
|kind=WeaponInfo Infobox
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Behavior, Stats, External Links
|General Info=Author, Mod, Usage Rights
|Behavior=Weapon Type, Ammo Type, Primary Fire, Secondary Fire, Requires Reloading
|Stats=Slot, Ammo Capacity, Damage, Rate of Fire, Accuracy, Range
|External Links=ModDB, Realm667, Website, Forum Thread
}}</includeonly><noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
9285aacdb9dd3089df7cf256e02e447774089673
493
479
2025-11-09T14:07:08Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
<includeonly>{{#invoke:Infobox|main
|kind=WeaponInfo Infobox
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Behavior, Stats, External Links
|General Info=Author, Mod, Usage Rights
|Behavior=Weapon Type, Ammo Type, Primary Fire, Secondary Fire, Requires Reloading
|Stats=Height, Width, Slot, Ammo Capacity, Damage, Rate of Fire, Accuracy, Range
|External Links=ModDB, Realm667, Website, Forum Thread
}}</includeonly><noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
84121678bf92e0c7351c908c0af82bbc2f9e2571
494
493
2025-11-09T14:08:00Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
<includeonly>{{#invoke:Infobox|main
|kind=WeaponInfo Infobox
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Behavior, Stats, External Links
|General Info=Author, Mod, Usage Rights
|Behavior=Weapon Type, Ammo Type, Primary Fire, Secondary Fire, Requires Reloading
|Stats=Height & Width, Slot, Ammo Capacity, Damage, Rate of Fire, Accuracy, Range
|External Links=ModDB, Realm667, Website, Forum Thread
}}</includeonly><noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
4c3edfc4e72d58bc43385988f0488d619aa65ba1
495
494
2025-11-09T14:09:23Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
<includeonly>{{#invoke:Infobox|main
|kind=WeaponInfo Infobox
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Behavior, Stats, External Links
|General Info=Author, Mod, Usage Rights
|Behavior=Weapon Type, Ammo Type, Primary Fire, Secondary Fire, Requires Reloading
|Stats=Width & Height, Slot, Ammo Capacity, Damage, Rate of Fire, Accuracy, Range
|External Links=ModDB, Realm667, Website, Forum Thread
}}</includeonly><noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
8253e6504ee3736d3d7ae14eab52880f263819ff
496
495
2025-11-09T14:12:22Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
<includeonly>{{#invoke:Infobox|main
|kind=WeaponInfo Infobox
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Behavior, Stats, External Links
|General Info=Author, Mod, Usage Rights
|Behavior=Weapon Type, Ammo Type, Primary Fire, Secondary Fire, Requires Reloading
|Stats=Radius, Height, Slot, Ammo Capacity, Damage, Rate of Fire, Accuracy, Range
|External Links=ModDB, Realm667, Website, Forum Thread
}}</includeonly><noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
ce30f6c8dfa86662d75730f7d9d547c15023b17b
Template:WeaponInfo Infobox/doc
10
327
468
2025-11-08T21:54:24Z
MasterOfDisillusionment
431405
Created page with "This is an example WeaponInfo infobox using the DRUID infobox framework. = Copyable code for use on other content pages = If you want to create pages using this infobox, you can copy the code below. This code is for CONTENT PAGES ONLY. It does not have anything to do with changing what the template supports. A field can be left empty if the data for it is not needed. == Example Code == <syntaxhighlight lang="wikitext" style="overflow: auto;"> {{WeaponInfo Infobox |t..."
wikitext
text/x-wiki
This is an example WeaponInfo infobox using the DRUID infobox framework.
= Copyable code for use on other content pages =
If you want to create pages using this infobox, you can copy the code below. This code is for CONTENT PAGES ONLY. It does not have anything to do with changing what the template supports. A field can be left empty if the data for it is not needed.
== Example Code ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{WeaponInfo Infobox
|title= Mod Title
|image= ImageFileName.png
|Author/Mod= Name of author and or mod name e.g. DeathNinja666/My Awesome Mod
|Slot= The weapon slot used by this weapon
|Usage Rights= Specified is others are allowed to use this weapon in their own games or mods.
|Weapon Type= Specify what type of weapon it is e.g. hitscan, projectile, melee, etc.
|Ammo Type= Specify what type of ammo this weapon uses e.g. shell, bullets, plasma, etc.
|Primary Fire= What does the primary fire do? E.g. single-shot, burst fire, full-auto, etc.
|Secondary Fire= Ditto but for secondary fire (leave blank if there is none)
|Requires Reloading= If the weapon must be reloaded after a certain number of shots, say Yes. Otherwise it's a No.
|Ammo Capacity= How much ammo can be carried for the weapon. If the weapon supports a Doom style backpack, list the regular and backpack value separately e.g. 100 (200 with backpack)
|Damage= How much damage is done per shot. If the weapon fires multiple rounds per trigger-pull, the damage per bullet/projectile must be listed separately from the total amount e.g. 10 per bullet (250 total)
|Rate of Fire= How fast the weapon fires on a scale of 1 to 5, with higher values being faster.
|Accuracy= Ditto but for accuracy
|Range= Ditto but for range. If the weapon ignores the concept of range, you can leave this empty.
|ModDB= Link to the moddb page where this weapon or the mod it belongs to can be found.
|Realm667= Ditto but for Realm667
|Website= Ditto but for the project website if there is one.
|Forum Thread= Ditto but for the forum thread if there is one.
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
== Clean Version ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{WeaponInfo Infobox
|title=
|image=
|Author/Mod=
|Slot=
|Usage Rights=
|Weapon Type=
|Ammo Type=
|Primary Fire=
|Secondary Fire=
|Requires Reloading=
|Ammo Capacity=
|Damage=
|Rate of Fire=
|Accuracy=
|Range=
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
7a5e6c219c26cee455be6376347a4e94acbb02bf
475
468
2025-11-08T22:07:43Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This is an example WeaponInfo infobox using the DRUID infobox framework.
= Copyable code for use on other content pages =
If you want to create pages using this infobox, you can copy the code below. This code is for CONTENT PAGES ONLY. It does not have anything to do with changing what the template supports. A field can be left empty if the data for it is not needed.
== Example Code ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{WeaponInfo Infobox
|title= Mod Title
|image= ImageFileName.png
|Author= Name of author
|Mod= Name of the mod
|Slot= The weapon slot used by this weapon
|Usage Rights= Specified is others are allowed to use this weapon in their own games or mods.
|Weapon Type= Specify what type of weapon it is e.g. hitscan, projectile, melee, etc.
|Ammo Type= Specify what type of ammo this weapon uses e.g. shell, bullets, plasma, etc.
|Primary Fire= What does the primary fire do? E.g. single-shot, burst fire, full-auto, etc.
|Secondary Fire= Ditto but for secondary fire (leave blank if there is none)
|Requires Reloading= If the weapon must be reloaded after a certain number of shots, say Yes. Otherwise it's a No.
|Ammo Capacity= How much ammo can be carried for the weapon. If the weapon supports a Doom style backpack, list the regular and backpack value separately e.g. 100 (200 with backpack)
|Damage= How much damage is done per shot. If the weapon fires multiple rounds per trigger-pull, the damage per bullet/projectile must be listed separately from the total amount e.g. 10 per bullet (250 total)
|Rate of Fire= How fast the weapon fires on a scale of 1 to 5, with higher values being faster.
|Accuracy= Ditto but for accuracy
|Range= Ditto but for range. If the weapon ignores the concept of range, you can leave this empty.
|ModDB= Link to the moddb page where this weapon or the mod it belongs to can be found.
|Realm667= Ditto but for Realm667
|Website= Ditto but for the project website if there is one.
|Forum Thread= Ditto but for the forum thread if there is one.
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
== Clean Version ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{WeaponInfo Infobox
|title=
|image=
|Author=
|Mod=
|Slot=
|Usage Rights=
|Weapon Type=
|Ammo Type=
|Primary Fire=
|Secondary Fire=
|Requires Reloading=
|Ammo Capacity=
|Damage=
|Rate of Fire=
|Accuracy=
|Range=
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
c393ce0ce1a654c43a91d520a5c5b7fcdf90a116
478
475
2025-11-08T22:15:37Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This is an example WeaponInfo infobox using the DRUID infobox framework.
= Copyable code for use on other content pages =
If you want to create pages using this infobox, you can copy the code below. This code is for CONTENT PAGES ONLY. It does not have anything to do with changing what the template supports. A field can be left empty if the data for it is not needed.
== Example Code ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{WeaponInfo Infobox
|title= Mod Title
|image= ImageFileName.png
|Author= Name of author
|Mod= Name of the mod
|Usage Rights= Specified is others are allowed to use this weapon in their own games or mods.
|Weapon Type= Specify what type of weapon it is e.g. hitscan, projectile, melee, etc.
|Ammo Type= Specify what type of ammo this weapon uses e.g. shell, bullets, plasma, etc.
|Primary Fire= What does the primary fire do? E.g. single-shot, burst fire, full-auto, etc.
|Secondary Fire= Ditto but for secondary fire (leave blank if there is none)
|Requires Reloading= If the weapon must be reloaded after a certain number of shots, say Yes. Otherwise it's a No.
|Slot= The weapon slot used by this weapon
|Ammo Capacity= How much ammo can be carried for the weapon. If the weapon supports a Doom style backpack, list the regular and backpack value separately e.g. 100 (200 with backpack)
|Damage= How much damage is done per shot. If the weapon fires multiple rounds per trigger-pull, the damage per bullet/projectile must be listed separately from the total amount e.g. 10 per bullet (250 total)
|Rate of Fire= How fast the weapon fires on a scale of 1 to 5, with higher values being faster.
|Accuracy= Ditto but for accuracy
|Range= Ditto but for range. If the weapon ignores the concept of range, you can leave this empty.
|ModDB= Link to the moddb page where this weapon or the mod it belongs to can be found.
|Realm667= Ditto but for Realm667
|Website= Ditto but for the project website if there is one.
|Forum Thread= Ditto but for the forum thread if there is one.
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
== Clean Version ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{WeaponInfo Infobox
|title=
|image=
|Author=
|Mod=
|Usage Rights=
|Weapon Type=
|Ammo Type=
|Primary Fire=
|Secondary Fire=
|Requires Reloading=
|Slot=
|Ammo Capacity=
|Damage=
|Rate of Fire=
|Accuracy=
|Range=
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
bf3d501c2266717234563831d8990e144fa157c7
498
478
2025-11-09T14:41:49Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This is an example WeaponInfo infobox using the DRUID infobox framework.
= Copyable code for use on other content pages =
If you want to create pages using this infobox, you can copy the code below. This code is for CONTENT PAGES ONLY. It does not have anything to do with changing what the template supports. A field can be left empty if the data for it is not needed.
== Example Code ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{WeaponInfo Infobox
|title= Mod Title
|image= ImageFileName.png
|Author= Name of author
|Mod= Name of the mod
|Usage Rights= Specified is others are allowed to use this weapon in their own games or mods.
|Weapon Type= Specify what type of weapon it is e.g. hitscan, projectile, melee, etc.
|Ammo Type= Specify what type of ammo this weapon uses e.g. shell, bullets, plasma, etc.
|Primary Fire= What does the primary fire do? E.g. single-shot, burst fire, full-auto, etc.
|Secondary Fire= Ditto but for secondary fire (leave blank if there is none)
|Requires Reloading= If the weapon must be reloaded after a certain number of shots, say Yes. Otherwise it's a No.
|Radius= The radius of the weapon as it is defined in the script code.
|Width= The width of the weapon as it is defined in the script code.
|Slot= The weapon slot used by this weapon
|Ammo Capacity= How much ammo can be carried for the weapon. If the weapon supports a Doom style backpack, list the regular and backpack value separately e.g. 100 (200 with backpack)
|Damage= How much damage is done per shot. If the weapon fires multiple rounds per trigger-pull, the damage per bullet/projectile must be listed separately from the total amount e.g. 10 per bullet (250 total)
|Rate of Fire= How fast the weapon fires on a scale of 1 to 5, with higher values being faster.
|Accuracy= Ditto but for accuracy
|Range= Ditto but for range. If the weapon ignores the concept of range, you can leave this empty.
|ModDB= Link to the moddb page where this weapon or the mod it belongs to can be found.
|Realm667= Ditto but for Realm667
|Website= Ditto but for the project website if there is one.
|Forum Thread= Ditto but for the forum thread if there is one.
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
== Clean Version ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{WeaponInfo Infobox
|title=
|image=
|Author=
|Mod=
|Usage Rights=
|Weapon Type=
|Ammo Type=
|Primary Fire=
|Secondary Fire=
|Requires Reloading=
|Radius=
|Width=
|Slot=
|Ammo Capacity=
|Damage=
|Rate of Fire=
|Accuracy=
|Range=
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
55a42db1f84753c95d0cf94a50575433027df424
File:WeaponAssaultRifle.png
6
328
470
2025-11-08T22:01:42Z
MasterOfDisillusionment
431405
Weapon sprite for the Assault rifle weapon from Absolute Doom.
wikitext
text/x-wiki
== Summary ==
Weapon sprite for the Assault rifle weapon from Absolute Doom.
== Licensing ==
{{License|fairuse}}
82dde4f200b2364605fca5e3189f7e0e101a919a
471
470
2025-11-08T22:04:59Z
MasterOfDisillusionment
431405
MasterOfDisillusionment renamed page [[File:Weapon AssaultRifle.png]] to [[File:WeaponAssaultRifle.png]]
wikitext
text/x-wiki
== Summary ==
Weapon sprite for the Assault rifle weapon from Absolute Doom.
== Licensing ==
{{License|fairuse}}
82dde4f200b2364605fca5e3189f7e0e101a919a
File:Weapon AssaultRifle.png
6
329
472
2025-11-08T22:04:59Z
MasterOfDisillusionment
431405
MasterOfDisillusionment renamed page [[File:Weapon AssaultRifle.png]] to [[File:WeaponAssaultRifle.png]]
wikitext
text/x-wiki
#REDIRECT [[File:WeaponAssaultRifle.png]]
7c8a51b302d1d21faab6328d711d0f96834733b8
Category:Weapons
14
331
483
2025-11-08T22:24:33Z
MasterOfDisillusionment
431405
Created page with "All pages related to weapons and ammo pickups are listed here. [[Category:Weapons]]"
wikitext
text/x-wiki
All pages related to weapons and ammo pickups are listed here.
[[Category:Weapons]]
19dd94a3ce55cb449011f0f3743d9a57a93e6e58
Malefact Mapping Tutorials
0
314
490
411
2025-11-09T00:16:28Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This level design guide was written to ease newcomers to Malefact mapping into the process. It was written by hardcore_gamer, who is the lead developer and level designer for the game. If you wish to create your own levels for the game, it’s strongly recommended you give them a glance, even if only for those sections covering functionality that is unique to Malefact.
If you’d like to add your own tutorials or link to those created by others, you can do so on the [[Category:Tutorials And Guides|main tutorial category page]].
== Table of Contents ==
=== Beginner ===
* Installing Prerequisites
* Sector Creation
* Texturing
* Lighting
* Sector Effects
* Actor Placement
* Linedef Triggers & Interactive Elements
* Ending Your Map
* MAPINFO Definition
=== Advanced ===
* Scrolling Surfaces
* Slopes & Arches
* 3D Sectors & Liquids
* Patrolling Monsters & Hazards
* ACS Scripting
* Hub Maps
* Ambient Sounds
=== Design Theory ===
* Pre-Planning
* Area Modules
* Monster Closets & Traps
* Encounter Design & Pacing
[[Category:Tutorials And Guides]]
362b190c45fc70d0d51c692f9c5d038dc9051735
491
490
2025-11-09T00:17:45Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This level design guide was created to ease newcomers to Malefact mapping into the process. It was written by the game's lead developer and level designer. If you wish to create your own levels for the game, it’s strongly recommended you give them a glance, even if only for those sections covering functionality that is unique to Malefact.
If you’d like to add your own tutorials or link to those created by others, you can do so on the [[Category:Tutorials And Guides|main tutorial category page]].
== Table of Contents ==
=== Beginner ===
* Installing Prerequisites
* Sector Creation
* Texturing
* Lighting
* Sector Effects
* Actor Placement
* Linedef Triggers & Interactive Elements
* Ending Your Map
* MAPINFO Definition
=== Advanced ===
* Scrolling Surfaces
* Slopes & Arches
* 3D Sectors & Liquids
* Patrolling Monsters & Hazards
* ACS Scripting
* Hub Maps
* Ambient Sounds
=== Design Theory ===
* Pre-Planning
* Area Modules
* Monster Closets & Traps
* Encounter Design & Pacing
[[Category:Tutorials And Guides]]
9f0122c443f0ed8292286b50742f4d0750fcfa57
492
491
2025-11-09T00:18:17Z
MasterOfDisillusionment
431405
Protected "[[Malefact Mapping Tutorials]]": Official Malefact Tutorials written by the game's developer. ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite))
wikitext
text/x-wiki
This level design guide was created to ease newcomers to Malefact mapping into the process. It was written by the game's lead developer and level designer. If you wish to create your own levels for the game, it’s strongly recommended you give them a glance, even if only for those sections covering functionality that is unique to Malefact.
If you’d like to add your own tutorials or link to those created by others, you can do so on the [[Category:Tutorials And Guides|main tutorial category page]].
== Table of Contents ==
=== Beginner ===
* Installing Prerequisites
* Sector Creation
* Texturing
* Lighting
* Sector Effects
* Actor Placement
* Linedef Triggers & Interactive Elements
* Ending Your Map
* MAPINFO Definition
=== Advanced ===
* Scrolling Surfaces
* Slopes & Arches
* 3D Sectors & Liquids
* Patrolling Monsters & Hazards
* ACS Scripting
* Hub Maps
* Ambient Sounds
=== Design Theory ===
* Pre-Planning
* Area Modules
* Monster Closets & Traps
* Encounter Design & Pacing
[[Category:Tutorials And Guides]]
9f0122c443f0ed8292286b50742f4d0750fcfa57
Template:MonsterInfo Infobox
10
332
499
2025-11-09T14:47:10Z
MasterOfDisillusionment
431405
Created page with "<includeonly>{{#invoke:Infobox|main |kind=MonsterInfo Infobox |sep=, |image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}} |sections=General Info, Behavior, Stats, External Links |General Info=Author, First Appearance, Mod, Usage Rights |Behavior=Attack Type, Special Abilities |Stats=Radius, Height, ATK, HP, Speed, Pain chance, Drops |External Links=ModDB, Realm667, Website, Forum Thread }}</includeonly><noinclude> {{documentation}} [[Category:Infobox templates]]..."
wikitext
text/x-wiki
<includeonly>{{#invoke:Infobox|main
|kind=MonsterInfo Infobox
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Behavior, Stats, External Links
|General Info=Author, First Appearance, Mod, Usage Rights
|Behavior=Attack Type, Special Abilities
|Stats=Radius, Height, ATK, HP, Speed, Pain chance, Drops
|External Links=ModDB, Realm667, Website, Forum Thread
}}</includeonly><noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
263fd36d6bc3a3f3c100243be2adfe14bd0c08e5
500
499
2025-11-09T14:54:07Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
<includeonly>{{#invoke:Infobox|main
|kind=MonsterInfo Infobox
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Behavior, Stats, External Links
|General Info=Author, First Appearance, Mod, Usage Rights
|Behavior=Attacks, Special Abilities
|Stats=Radius, Height, ATK, HP, Speed, Pain chance, Drops
|External Links=ModDB, Realm667, Website, Forum Thread
}}</includeonly><noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
82200405a354e543eafe89f8565c7ec656c1d065
501
500
2025-11-09T14:56:10Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
<includeonly>{{#invoke:Infobox|main
|kind=MonsterInfo Infobox
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Behavior, Stats, External Links
|General Info=Author, First Appearance, Mod, Usage Rights
|Behavior=Attacks, Special Abilities
|Stats=Radius, Height, HP, Speed, Pain chance, Drops
|External Links=ModDB, Realm667, Website, Forum Thread
}}</includeonly><noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
ad495c0c6e789ac7348c71bf6d84dda7c4249802
502
501
2025-11-09T14:59:32Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
<includeonly>{{#invoke:Infobox|main
|kind=MonsterInfo Infobox
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Behavior, Stats, External Links
|General Info=Author, First Appearance, Mod, Usage Rights
|Behavior=Attacks, Special Abilities
|Stats=Radius, Height, HP, Speed, Attack Speed, Pain chance, Drops
|External Links=ModDB, Realm667, Website, Forum Thread
}}</includeonly><noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
5ed561845c2c2f7c0fcdf0469004a7dbf12768e1
Attribute Scale Reference
0
333
503
2025-11-09T15:10:29Z
MasterOfDisillusionment
431405
Created page with "In UZDoom engine games, actors such as monsters and weapons use specific values to define speed, attack damage, and other attributes. The problem is that these values are not always easy for casual wiki browsers to understand. To improve clarity, this page explains what these numbers actually mean in layman's terms. [[Category:Mods And Assets]]"
wikitext
text/x-wiki
In UZDoom engine games, actors such as monsters and weapons use specific values to define speed, attack damage, and other attributes. The problem is that these values are not always easy for casual wiki browsers to understand. To improve clarity, this page explains what these numbers actually mean in layman's terms.
[[Category:Mods And Assets]]
4bcdf60839dc2a37a1f121159b0e55d7342c3196
Template:MonsterInfo Infobox/doc
10
334
504
2025-11-09T15:25:02Z
MasterOfDisillusionment
431405
Created page with "This is an example MonsterInfo infobox using the DRUID infobox framework. = Copyable code for use on other content pages = If you want to create pages using this infobox, you can copy the code below. This code is for CONTENT PAGES ONLY. It does not have anything to do with changing what the template supports. A field can be left empty if the data for it is not needed. == Example Code == Attribute Scale Reference|If you haven't already, make sure you have read the..."
wikitext
text/x-wiki
This is an example MonsterInfo infobox using the DRUID infobox framework.
= Copyable code for use on other content pages =
If you want to create pages using this infobox, you can copy the code below. This code is for CONTENT PAGES ONLY. It does not have anything to do with changing what the template supports. A field can be left empty if the data for it is not needed.
== Example Code ==
[[Attribute Scale Reference|If you haven't already, make sure you have read the page on how to correctly list actor stats.]]
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{MonsterInfo Infobox
|title= Mod Title
|image= ImageFileName.png
|Author= Name of author
|First Appearance = In which game did this monster appear first? Ignore this if it's a user made custom monster and instead use the mod field below.
|Mod= Name of the mod this monster belongs to. Ignore this if the monster comes from an official game.
|Usage Rights= Specified is others are allowed to use this weapon in their own games or mods. If it comes from an official game, copyright applies by default.
|Attacks= Add bullet points for each attack the monster has, including the damage each does e.g. "Hitscan (23ATK)"
|Special Abilities= Optionally, add bullet points that list special abilities if there monster has any.
|Radius= The radius of the monster as it is defined in the script code.
|Width= The width of the monster as it is defined in the script code.
|HP= How much health does this monster have?
|Speed= How fast does this monster move?
|Attack Speed= How fast the monster can attack again.
|Accuracy= How accurate is this monster? If there is more than one attack, use bullet points to list accuracy for each attack.
|ModDB= Link to the moddb page where this weapon or the mod it belongs to can be found.
|Realm667= Ditto but for Realm667
|Website= Ditto but for the project website if there is one.
|Forum Thread= Ditto but for the forum thread if there is one.
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
== Clean Version ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{WeaponInfo Infobox
|title=
|image=
|Author=
|First Appearance =
|Mod=
|Usage Rights=
|Attacks=
|Special Abilities=
|Radius=
|Width=
|HP=
|Speed=
|Attack Speed=
|Accuracy=
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
c13f03e49b2d3e0e765b84abeaf46d65845575d7
505
504
2025-11-09T15:25:16Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This is an example MonsterInfo infobox using the DRUID infobox framework.
= Copyable code for use on other content pages =
If you want to create pages using this infobox, you can copy the code below. This code is for CONTENT PAGES ONLY. It does not have anything to do with changing what the template supports. A field can be left empty if the data for it is not needed.
== Example Code ==
[[Attribute Scale Reference|If you haven't already, make sure you have read the page on how to correctly list actor stats.]]
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{MonsterInfo Infobox
|title= Mod Title
|image= ImageFileName.png
|Author= Name of author
|First Appearance = In which game did this monster appear first? Ignore this if it's a user made custom monster and instead use the mod field below.
|Mod= Name of the mod this monster belongs to. Ignore this if the monster comes from an official game.
|Usage Rights= Specified is others are allowed to use this weapon in their own games or mods. If it comes from an official game, copyright applies by default.
|Attacks= Add bullet points for each attack the monster has, including the damage each does e.g. "Hitscan (23ATK)"
|Special Abilities= Optionally, add bullet points that list special abilities if there monster has any.
|Radius= The radius of the monster as it is defined in the script code.
|Width= The width of the monster as it is defined in the script code.
|HP= How much health does this monster have?
|Speed= How fast does this monster move?
|Attack Speed= How fast the monster can attack again.
|Accuracy= How accurate is this monster? If there is more than one attack, use bullet points to list accuracy for each attack.
|ModDB= Link to the moddb page where this weapon or the mod it belongs to can be found.
|Realm667= Ditto but for Realm667
|Website= Ditto but for the project website if there is one.
|Forum Thread= Ditto but for the forum thread if there is one.
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
== Clean Version ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{MonsterInfo Infobox
|title=
|image=
|Author=
|First Appearance =
|Mod=
|Usage Rights=
|Attacks=
|Special Abilities=
|Radius=
|Width=
|HP=
|Speed=
|Attack Speed=
|Accuracy=
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
a6231f9b83354286067577e321ba7f2b63ca397e
506
505
2025-11-09T15:25:38Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This is an example MonsterInfo infobox using the DRUID infobox framework.
= Copyable code for use on other content pages =
If you want to create pages using this infobox, you can copy the code below. This code is for CONTENT PAGES ONLY. It does not have anything to do with changing what the template supports. A field can be left empty if the data for it is not needed.
== Example Code ==
[[Attribute Scale Reference|If you haven't already, make sure you have read the page on how to correctly list actor stats.]]
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{MonsterInfo Infobox
|title= Monster Name
|image= ImageFileName.png
|Author= Name of author
|First Appearance = In which game did this monster appear first? Ignore this if it's a user made custom monster and instead use the mod field below.
|Mod= Name of the mod this monster belongs to. Ignore this if the monster comes from an official game.
|Usage Rights= Specified is others are allowed to use this weapon in their own games or mods. If it comes from an official game, copyright applies by default.
|Attacks= Add bullet points for each attack the monster has, including the damage each does e.g. "Hitscan (23ATK)"
|Special Abilities= Optionally, add bullet points that list special abilities if there monster has any.
|Radius= The radius of the monster as it is defined in the script code.
|Width= The width of the monster as it is defined in the script code.
|HP= How much health does this monster have?
|Speed= How fast does this monster move?
|Attack Speed= How fast the monster can attack again.
|Accuracy= How accurate is this monster? If there is more than one attack, use bullet points to list accuracy for each attack.
|ModDB= Link to the moddb page where this weapon or the mod it belongs to can be found.
|Realm667= Ditto but for Realm667
|Website= Ditto but for the project website if there is one.
|Forum Thread= Ditto but for the forum thread if there is one.
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
== Clean Version ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{MonsterInfo Infobox
|title=
|image=
|Author=
|First Appearance =
|Mod=
|Usage Rights=
|Attacks=
|Special Abilities=
|Radius=
|Width=
|HP=
|Speed=
|Attack Speed=
|Accuracy=
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
38acff450015e76da02accaa4a992d17b13dfada
513
506
2025-11-09T15:46:52Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This is an example MonsterInfo infobox using the DRUID infobox framework.
= Copyable code for use on other content pages =
If you want to create pages using this infobox, you can copy the code below. This code is for CONTENT PAGES ONLY. It does not have anything to do with changing what the template supports. A field can be left empty if the data for it is not needed.
== Example Code ==
[[Attribute Scale Reference|If you haven't already, make sure you have read the page on how to correctly list actor stats.]]
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{MonsterInfo Infobox
|title= Monster Name
|image= ImageFileName.png
|Author= Name of author
|First Appearance = In which game did this monster appear first? Ignore this if it's a user made custom monster and instead use the mod field below.
|Mod= Name of the mod this monster belongs to. Ignore this if the monster comes from an official game.
|Usage Rights= Specified is others are allowed to use this weapon in their own games or mods. If it comes from an official game, copyright applies by default.
|Attacks= Add bullet points for each attack the monster has, including the damage each does e.g. "Hitscan (23ATK)"
|Special Abilities= Optionally, add bullet points that list special abilities if there monster has any.
|Radius= The radius of the monster as it is defined in the script code.
|Height= The width of the monster as it is defined in the script code.
|HP= How much health does this monster have?
|Speed= How fast does this monster move?
|Attack Speed= How fast the monster can attack again.
|Accuracy= How accurate is this monster? If there is more than one attack, use bullet points to list accuracy for each attack.
|ModDB= Link to the moddb page where this weapon or the mod it belongs to can be found.
|Realm667= Ditto but for Realm667
|Website= Ditto but for the project website if there is one.
|Forum Thread= Ditto but for the forum thread if there is one.
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
== Clean Version ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{MonsterInfo Infobox
|title=
|image=
|Author=
|First Appearance =
|Mod=
|Usage Rights=
|Attacks=
|Special Abilities=
|Radius=
|Height=
|HP=
|Speed=
|Attack Speed=
|Accuracy=
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
3eee297fad1bc334a1f65117b452ee31a034e744
514
513
2025-11-09T15:54:36Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This is an example MonsterInfo infobox using the DRUID infobox framework.
= Copyable code for use on other content pages =
If you want to create pages using this infobox, you can copy the code below. This code is for CONTENT PAGES ONLY. It does not have anything to do with changing what the template supports. A field can be left empty if the data for it is not needed.
== Example Code ==
[[Attribute Scale Reference|If you haven't already, make sure you have read the page on how to correctly list actor stats.]]
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{MonsterInfo Infobox
|title= Monster Name
|image= ImageFileName.png
|Author= Name of author
|First Appearance = In which game did this monster appear first? Ignore this if it's a user made custom monster and instead use the mod field below.
|Mod= Name of the mod this monster belongs to. Ignore this if the monster comes from an official game.
|Usage Rights= Specified is others are allowed to use this weapon in their own games or mods. If it comes from an official game, copyright applies by default.
|Attacks= The attack the monster has, including the damage each does e.g. "Hitscan (23ATK)" Use bullet points if there is more than one.
|Special Abilities= Optionally, add bullet points that list special abilities if there monster has any.
|Radius= The radius of the monster as it is defined in the script code.
|Height= The width of the monster as it is defined in the script code.
|HP= How much health does this monster have?
|Speed= How fast does this monster move?
|Pain chance= Odds of entering the pain state when damaged.
|Drops= How fast does this monster move?
|ModDB= Link to the moddb page where this weapon or the mod it belongs to can be found.
|Realm667= Ditto but for Realm667
|Website= Ditto but for the project website if there is one.
|Forum Thread= Ditto but for the forum thread if there is one.
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
== Clean Version ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{MonsterInfo Infobox
|title=
|image=
|Author=
|First Appearance =
|Mod=
|Usage Rights=
|Attacks=
|Special Abilities=
|Radius=
|Height=
|HP=
|Speed=
|Pain chance=
|Drops=
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
fa4dd5d11ef596deb0d146bd11e3b54a4490a064
536
514
2025-11-09T20:19:29Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This is an example MonsterInfo infobox using the DRUID infobox framework.
= Copyable code for use on other content pages =
If you want to create pages using this infobox, you can copy the code below. This code is for CONTENT PAGES ONLY. It does not have anything to do with changing what the template supports. A field can be left empty if the data for it is not needed.
== Example Code ==
[[Attribute Scale Reference|If you haven't already, make sure you have read the page on how to correctly list actor stats.]]
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{MonsterInfo Infobox
|title= Monster Name
|image= ImageFileName.png
|Author= Name of author
|Game= The first game the monster appeared. Ignore this if it's a custom monster.
|Mod= Name of the mod this monster belongs to. Ignore this if the monster comes from an official game.
|Usage Rights= Specified is others are allowed to use this weapon in their own games or mods. If it comes from an official game, copyright applies by default.
|Attacks= The attack the monster has, including the damage each does e.g. "Hitscan (23ATK)" Use bullet points if there is more than one.
|Special Abilities= Optionally, add bullet points that list special abilities if there monster has any.
|Radius= The radius of the monster as it is defined in the script code.
|Height= The width of the monster as it is defined in the script code.
|HP= How much health does this monster have?
|Speed= How fast does this monster move?
|Pain chance= Odds of entering the pain state when damaged.
|Drops= How fast does this monster move?
|ModDB= Link to the moddb page where this weapon or the mod it belongs to can be found.
|Realm667= Ditto but for Realm667
|Website= Ditto but for the project website if there is one.
|Forum Thread= Ditto but for the forum thread if there is one.
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
== Clean Version ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{MonsterInfo Infobox
|title=
|image=
|Author=
|Game=
|Mod=
|Usage Rights=
|Attacks=
|Special Abilities=
|Radius=
|Height=
|HP=
|Speed=
|Pain chance=
|Drops=
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
c31ab2f7a0b36250a9e98bba2cd81a4c588bfc18
544
536
2025-11-09T20:37:56Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This is an example MonsterInfo infobox using the DRUID infobox framework.
= Copyable code for use on other content pages =
If you want to create pages using this infobox, you can copy the code below. This code is for CONTENT PAGES ONLY. It does not have anything to do with changing what the template supports. A field can be left empty if the data for it is not needed.
== Example Code ==
Before filling these out, make sure to read the pages on [[Attribute Scale Reference|Scale Reference]] and [[Usage Rights|Usage Rights]].
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{MonsterInfo Infobox
|title= Monster Name
|image= ImageFileName.png
|Author= Name of author
|Game= The first game the monster appeared. Ignore this if it's a custom monster.
|Mod= Name of the mod this monster belongs to. Ignore this if the monster comes from an official game.
|Usage Rights= Specified is others are allowed to use this weapon in their own games or mods. If it comes from an official game, copyright applies by default.
|Attacks= The attack the monster has, including the damage each does e.g. "Hitscan (23ATK)" Use bullet points if there is more than one.
|Special Abilities= Optionally, add bullet points that list special abilities if there monster has any.
|Radius= The radius of the monster as it is defined in the script code.
|Height= The width of the monster as it is defined in the script code.
|HP= How much health does this monster have?
|Speed= How fast does this monster move?
|Pain chance= Odds of entering the pain state when damaged.
|Drops= How fast does this monster move?
|ModDB= Link to the moddb page where this weapon or the mod it belongs to can be found.
|Realm667= Ditto but for Realm667
|Website= Ditto but for the project website if there is one.
|Forum Thread= Ditto but for the forum thread if there is one.
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
== Clean Version ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{MonsterInfo Infobox
|title=
|image=
|Author=
|Game=
|Mod=
|Usage Rights=
|Attacks=
|Special Abilities=
|Radius=
|Height=
|HP=
|Speed=
|Pain chance=
|Drops=
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
ac549c89c466fedd619818cfddcc53cb25911939
Template:WeaponInfo Infobox/doc
10
327
507
498
2025-11-09T15:25:52Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This is an example WeaponInfo infobox using the DRUID infobox framework.
= Copyable code for use on other content pages =
If you want to create pages using this infobox, you can copy the code below. This code is for CONTENT PAGES ONLY. It does not have anything to do with changing what the template supports. A field can be left empty if the data for it is not needed.
== Example Code ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{WeaponInfo Infobox
|title= Weapon Name
|image= ImageFileName.png
|Author= Name of author
|Mod= Name of the mod
|Usage Rights= Specified is others are allowed to use this weapon in their own games or mods.
|Weapon Type= Specify what type of weapon it is e.g. hitscan, projectile, melee, etc.
|Ammo Type= Specify what type of ammo this weapon uses e.g. shell, bullets, plasma, etc.
|Primary Fire= What does the primary fire do? E.g. single-shot, burst fire, full-auto, etc.
|Secondary Fire= Ditto but for secondary fire (leave blank if there is none)
|Requires Reloading= If the weapon must be reloaded after a certain number of shots, say Yes. Otherwise it's a No.
|Radius= The radius of the weapon as it is defined in the script code.
|Width= The width of the weapon as it is defined in the script code.
|Slot= The weapon slot used by this weapon
|Ammo Capacity= How much ammo can be carried for the weapon. If the weapon supports a Doom style backpack, list the regular and backpack value separately e.g. 100 (200 with backpack)
|Damage= How much damage is done per shot. If the weapon fires multiple rounds per trigger-pull, the damage per bullet/projectile must be listed separately from the total amount e.g. 10 per bullet (250 total)
|Rate of Fire= How fast the weapon fires on a scale of 1 to 5, with higher values being faster.
|Accuracy= Ditto but for accuracy
|Range= Ditto but for range. If the weapon ignores the concept of range, you can leave this empty.
|ModDB= Link to the moddb page where this weapon or the mod it belongs to can be found.
|Realm667= Ditto but for Realm667
|Website= Ditto but for the project website if there is one.
|Forum Thread= Ditto but for the forum thread if there is one.
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
== Clean Version ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{WeaponInfo Infobox
|title=
|image=
|Author=
|Mod=
|Usage Rights=
|Weapon Type=
|Ammo Type=
|Primary Fire=
|Secondary Fire=
|Requires Reloading=
|Radius=
|Width=
|Slot=
|Ammo Capacity=
|Damage=
|Rate of Fire=
|Accuracy=
|Range=
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
3eef9df3253a5042f2f2e32e26c7fa5a76812aac
508
507
2025-11-09T15:26:50Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This is an example WeaponInfo infobox using the DRUID infobox framework.
= Copyable code for use on other content pages =
If you want to create pages using this infobox, you can copy the code below. This code is for CONTENT PAGES ONLY. It does not have anything to do with changing what the template supports. A field can be left empty if the data for it is not needed.
== Example Code ==
[[Attribute Scale Reference|If you haven't already, make sure you have read the page on how to correctly list actor stats.]]
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{WeaponInfo Infobox
|title= Weapon Name
|image= ImageFileName.png
|Author= Name of author
|Mod= Name of the mod
|Usage Rights= Specified is others are allowed to use this weapon in their own games or mods.
|Weapon Type= Specify what type of weapon it is e.g. hitscan, projectile, melee, etc.
|Ammo Type= Specify what type of ammo this weapon uses e.g. shell, bullets, plasma, etc.
|Primary Fire= What does the primary fire do? E.g. single-shot, burst fire, full-auto, etc.
|Secondary Fire= Ditto but for secondary fire (leave blank if there is none)
|Requires Reloading= If the weapon must be reloaded after a certain number of shots, say Yes. Otherwise it's a No.
|Radius= The radius of the weapon as it is defined in the script code.
|Width= The width of the weapon as it is defined in the script code.
|Slot= The weapon slot used by this weapon
|Ammo Capacity= How much ammo can be carried for the weapon. If the weapon supports a Doom style backpack, list the regular and backpack value separately e.g. 100 (200 with backpack)
|Damage= How much damage is done per shot. If the weapon fires multiple rounds per trigger-pull, the damage per bullet/projectile must be listed separately from the total amount e.g. 10 per bullet (250 total)
|Rate of Fire= How fast the weapon fires on a scale of 1 to 5, with higher values being faster.
|Accuracy= Ditto but for accuracy
|Range= Ditto but for range. If the weapon ignores the concept of range, you can leave this empty.
|ModDB= Link to the moddb page where this weapon or the mod it belongs to can be found.
|Realm667= Ditto but for Realm667
|Website= Ditto but for the project website if there is one.
|Forum Thread= Ditto but for the forum thread if there is one.
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
== Clean Version ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{WeaponInfo Infobox
|title=
|image=
|Author=
|Mod=
|Usage Rights=
|Weapon Type=
|Ammo Type=
|Primary Fire=
|Secondary Fire=
|Requires Reloading=
|Radius=
|Width=
|Slot=
|Ammo Capacity=
|Damage=
|Rate of Fire=
|Accuracy=
|Range=
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
489e3a54a9a39a0f13eb3037a0eec00d18675998
529
508
2025-11-09T20:13:54Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This is an example WeaponInfo infobox using the DRUID infobox framework.
= Copyable code for use on other content pages =
If you want to create pages using this infobox, you can copy the code below. This code is for CONTENT PAGES ONLY. It does not have anything to do with changing what the template supports. A field can be left empty if the data for it is not needed.
== Example Code ==
[[Attribute Scale Reference|If you haven't already, make sure you have read the page on how to correctly list actor stats.]]
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{WeaponInfo Infobox
|title= Weapon Name
|image= ImageFileName.png
|Author= Name of author
|Mod= Name of the mod
|Usage Rights= Specified is others are allowed to use this weapon in their own games or mods.
|Weapon Type= Specify what type of weapon it is e.g. hitscan, projectile, melee, etc.
|Ammo Type= Specify what type of ammo this weapon uses e.g. shell, bullets, plasma, etc.
|Primary Fire= What does the primary fire do? E.g. single-shot, burst fire, full-auto, etc.
|Secondary Fire= Ditto but for secondary fire (leave blank if there is none)
|Requires Reloading= If the weapon must be reloaded after a certain number of shots, say Yes. Otherwise it's a No.
|Radius= The radius of the weapon as it is defined in the script code.
|Height= The width of the weapon as it is defined in the script code.
|Slot= The weapon slot used by this weapon
|Ammo Capacity= How much ammo can be carried for the weapon. If the weapon supports a Doom style backpack, list the regular and backpack value separately e.g. 100 (200 with backpack)
|Damage= How much damage is done per shot. If the weapon fires multiple rounds per trigger-pull, the damage per bullet/projectile must be listed separately from the total amount e.g. 10 per bullet (250 total)
|Rate of Fire= How fast the weapon fires on a scale of 1 to 5, with higher values being faster.
|Accuracy= Ditto but for accuracy
|Range= Ditto but for range. If the weapon ignores the concept of range, you can leave this empty.
|ModDB= Link to the moddb page where this weapon or the mod it belongs to can be found.
|Realm667= Ditto but for Realm667
|Website= Ditto but for the project website if there is one.
|Forum Thread= Ditto but for the forum thread if there is one.
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
== Clean Version ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{WeaponInfo Infobox
|title=
|image=
|Author=
|Mod=
|Usage Rights=
|Weapon Type=
|Ammo Type=
|Primary Fire=
|Secondary Fire=
|Requires Reloading=
|Radius=
|Height=
|Slot=
|Ammo Capacity=
|Damage=
|Rate of Fire=
|Accuracy=
|Range=
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
ef0254cb66e60817213dd51a91f6b46bf68e5815
543
529
2025-11-09T20:37:15Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This is an example WeaponInfo infobox using the DRUID infobox framework.
= Copyable code for use on other content pages =
If you want to create pages using this infobox, you can copy the code below. This code is for CONTENT PAGES ONLY. It does not have anything to do with changing what the template supports. A field can be left empty if the data for it is not needed.
== Example Code ==
Before filling these out, make sure to read the pages on [[Attribute Scale Reference|Scale Reference]] and [[Usage Rights|Usage Rights]].
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{WeaponInfo Infobox
|title= Weapon Name
|image= ImageFileName.png
|Author= Name of author
|Mod= Name of the mod
|Usage Rights= Specified is others are allowed to use this weapon in their own games or mods.
|Weapon Type= Specify what type of weapon it is e.g. hitscan, projectile, melee, etc.
|Ammo Type= Specify what type of ammo this weapon uses e.g. shell, bullets, plasma, etc.
|Primary Fire= What does the primary fire do? E.g. single-shot, burst fire, full-auto, etc.
|Secondary Fire= Ditto but for secondary fire (leave blank if there is none)
|Requires Reloading= If the weapon must be reloaded after a certain number of shots, say Yes. Otherwise it's a No.
|Radius= The radius of the weapon as it is defined in the script code.
|Height= The width of the weapon as it is defined in the script code.
|Slot= The weapon slot used by this weapon
|Ammo Capacity= How much ammo can be carried for the weapon. If the weapon supports a Doom style backpack, list the regular and backpack value separately e.g. 100 (200 with backpack)
|Damage= How much damage is done per shot. If the weapon fires multiple rounds per trigger-pull, the damage per bullet/projectile must be listed separately from the total amount e.g. 10 per bullet (250 total)
|Rate of Fire= How fast the weapon fires on a scale of 1 to 5, with higher values being faster.
|Accuracy= Ditto but for accuracy
|Range= Ditto but for range. If the weapon ignores the concept of range, you can leave this empty.
|ModDB= Link to the moddb page where this weapon or the mod it belongs to can be found.
|Realm667= Ditto but for Realm667
|Website= Ditto but for the project website if there is one.
|Forum Thread= Ditto but for the forum thread if there is one.
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
== Clean Version ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{WeaponInfo Infobox
|title=
|image=
|Author=
|Mod=
|Usage Rights=
|Weapon Type=
|Ammo Type=
|Primary Fire=
|Secondary Fire=
|Requires Reloading=
|Radius=
|Height=
|Slot=
|Ammo Capacity=
|Damage=
|Rate of Fire=
|Accuracy=
|Range=
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
118013f7d509a8095c2ad9502fc3f2465065a9cb
File:Zombieman.png
6
335
509
2025-11-09T15:37:13Z
MasterOfDisillusionment
431405
Front idle sprite
wikitext
text/x-wiki
== Summary ==
Front idle sprite
== Licensing ==
{{License|fairuse}}
cb4457cfd0e87d27f789df94f252316008e0ab51
Doom
0
306
510
461
2025-11-09T15:39:39Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{GameInfo Infobox
|title= Doom
|image= DoomCover.jpg
|Release date= 1993
|Engine= id Tech 1
|Setting/Theme= Sci-fi military, satanic.
|Latest Version= 1.9
|Developer(s)= id Software
|Publisher(s)= id Software
|Mod support= Extensive; source port is public and numerous tools exist.
|Notable mods/total conversions= * Brutal Doom
* Final Doomer+
* Plutona 2
|Official website=
|Steam page= [[https://store.steampowered.com/app/2280/DOOM__DOOM_II/| DOOM & DOOM II]]
|GOG page= [[https://www.gog.com/en/game/doom_doom_ii| DOOM & DOOM II]]
|ModDB page=
}}
Doom is a first person shooter action game created by Id Software and published in 1993.
== Gameplay ==
=== Mechanics ===
Insert Content.
=== Weapons ===
Insert Content.
=== Enemies ===
Insert Content.
=== Levels ===
Insert Content.
== Setting and Story ==
=== Plot ===
Insert Content.
=== Characters ===
Insert Content.
== Design ==
=== Graphics & Audio ===
Insert Content.
=== Visuals ===
Insert Content.
== Development History ==
=== Early Concepts ===
Insert Content.
=== Beta ===
Insert Content.
=== Final Build ===
Insert Content.
[[Category:Game Information]]
441cf8ea45fb3df824edaee487ba3656d04460dc
512
510
2025-11-09T15:42:41Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{GameInfo Infobox
|title= Doom
|image= DoomCover.jpg
|Release date= 1993
|Engine= id Tech 1
|Setting/Theme= Sci-fi military, satanic.
|Latest Version= 1.9
|Developer(s)= id Software
|Publisher(s)= id Software
|Mod support= Extensive; source port is public and numerous tools exist.
|Notable mods/total conversions= * Brutal Doom
* Final Doomer+
* Plutona 2
|Official website=
|Steam page= [[https://store.steampowered.com/app/2280/DOOM__DOOM_II/| DOOM & DOOM II]]
|GOG page= [[https://www.gog.com/en/game/doom_doom_ii| DOOM & DOOM II]]
|ModDB page=
}}
Doom is a first person shooter action game created by Id Software and published in 1993.
== Gameplay ==
=== Mechanics ===
Insert Content.
=== Weapons ===
Insert Content.
=== Enemies ===
* [[Zombieman]]
=== Levels ===
Insert Content.
== Setting and Story ==
=== Plot ===
Insert Content.
=== Characters ===
Insert Content.
== Design ==
=== Graphics & Audio ===
Insert Content.
=== Visuals ===
Insert Content.
== Development History ==
=== Early Concepts ===
Insert Content.
=== Beta ===
Insert Content.
=== Final Build ===
Insert Content.
[[Category:Game Information]]
2796909c397d013b693025b7d28568895b099dad
522
512
2025-11-09T17:13:59Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{GameInfo Infobox
|title= Doom
|image= DoomCover.jpg
|Release date= 1993
|Engine= id Tech 1
|Setting/Theme= Sci-fi military, satanic.
|Latest Version= 1.9
|Developer(s)= id Software
|Publisher(s)= id Software
|Mod support= Extensive; source port is public and numerous tools exist.
|Notable mods/total conversions= * Brutal Doom
* Final Doomer+
* Plutona 2
|Official website=
|Steam page= [[https://store.steampowered.com/app/2280/DOOM__DOOM_II/| DOOM & DOOM II]]
|GOG page= [[https://www.gog.com/en/game/doom_doom_ii| DOOM & DOOM II]]
|ModDB page=
}}
Doom is a first person shooter action game created by Id Software and published in 1993.
== Gameplay ==
=== Mechanics ===
Insert Content.
=== Weapons ===
Insert Content.
=== Items ===
* [[Stimpack]]
* Item 2
* Item 3
=== Enemies ===
* [[Zombieman]]
=== Levels ===
Insert Content.
== Setting and Story ==
=== Plot ===
Insert Content.
=== Characters ===
Insert Content.
== Design ==
=== Graphics & Audio ===
Insert Content.
=== Visuals ===
Insert Content.
== Development History ==
=== Early Concepts ===
Insert Content.
=== Beta ===
Insert Content.
=== Final Build ===
Insert Content.
[[Category:Game Information]]
14594e9d2896349546479f5f6fbd4a7ce8bd4af0
Malefact
0
309
511
383
2025-11-09T15:41:38Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{GameInfo
|title= Malefact: Evil Unchained
|image= MalefactCover.png
|Release date= Unreleased
|Engine= [[UZDoom Engine]]
|Setting/Theme= Fantasy-horror, satanic, grimdark.
|Latest Version= 0.2 (Dev Build only)
|Developer(s)= [[GoreMaxxed Productions]]
|Publisher(s)= [[GoreMaxxed Productions]]
|Mod support= Extensive; uses same tools as other UZDoom engine games
|Notable mods/total conversions=
|Official website=
|Steam page=
|GOG page=
|ModDB page=
}}
Malefact is a fantasy horror boomer shooter in development by [[GoreMaxxed Productions]]. The project is led by [[hardcore_gamer]], with a demo version expected to release in Q1 2026. The game is built on the UZDoom engine.
== Gameplay ==
=== Mechanics ===
The movement system in Malefact uses the same foundation as other Doom engine games but with free-mouse aiming controls in mind. In a departure from most titles in the genre, the game employs slower movement speeds and disables sprinting by default for a more immersive horror experience. Players can only achieve faster movement through temporary power-ups that boost speed for limited durations.
A central gameplay element comes in the form of the [[Books of Destruction]], magical tomes that provide access to various spells and abilities. While a book is equipped or selected, both the player character and all enemies freeze in place, creating a tactical pause system that allows for spell selection without the pressure of taking damage.
As is tradition with games of this genre, levels feature secret areas, but Malefact handles this slightly differently. Instead of marking specific areas (e.g. 'map sectors') as secrets, each level contains exactly three locked doors requiring corresponding [[Secret Key|secret keys]] hidden throughout the environment. This standardized approach means every level in the base game contains precisely three secrets, providing consistent exploration objectives across all stages. Mappers can still add secrets to their user-made levels the conventional way, however.
=== Weapons ===
Malefact features an arsenal of conventional and magical weapons, complemented by the four Books of Destruction. The confirmed weapons include:
* Knife - A serial killer-esque Buck knife.
* Colt Revolver - Wild West-styled firearm available in single and dual-wielded mode.
* Sawed-off Shotgun - Wild West inspired double-barrel sawed-off shotgun.
* Stake Gun - Steampunk-inspired rapid-fire stake launcher.
* Hellmasher - A demonic club constructed from satanic wood and flesh that launches spectral projectiles which travel a limited distance before self-destructing.
* Grim Reaper's Scythe - Unleashes horizontal spreads of energy projectiles while providing health regeneration from defeated enemies. As with projectiles thrown by the Hellmasher, the ones used by the Scythe can only travel a limited distance before self-destructing.
* The Books of Destruction serve as the game's magic system, with four books currently planned. Each book contains three distinct spells, though specific abilities remain subject to change during ongoing development.
=== Enemies ===
While the final enemy roster remains in development, the completed game will feature between twelve and seventeen distinct enemy types. The upcoming demo has confirmed three enemies that players will encounter:
* Sloth: Basic zombie-like fodder enemy.
* Craver: Low-to-mid tier melee type.
* Warden: Low-tier warrior class enemy capable of both melee strikes and ranged projectile attacks.
=== Levels ===
Malefact's campaign structure will consist of four episodes at launch, containing twelve levels each:
* Episode 1: The Weeping Know No Joy – Takes place within the Damnatorum and its extensive torture dungeon complexes.
* Episode 2: The Fields That Burn – Takes place on the infernal planes and in various hellish interpretations of rural landscapes and locations.
* Episode 3: No Flag Flies for the Damned – A series of heavily fortified strongholds protecting the Gate of Hell, representing the most defended territory in the infernal realm.
* Episode 4: Holocaust of the Living – Shifts the action to Earth, where Malefact unleashes destruction following his successful escape from Hell and subsequent transformation into a [[Chaos Demon]].
Additional expansion episodes may be developed following the game's release, though no official confirmation exists regarding post-launch content.
== Setting and Story ==
=== Plot ===
Players control Malefact, an undead serial killer condemned to eternal torment within the Damnatorum, Hell's deepest and most horrific dungeon complex reserved exclusively for the most irredeemable sinners. Prior to the game's events, Malefact receives a direct mental communication from God himself, offering unholy powers capable of facilitating escape from his prison of suffering. The divine proposition requires Malefact to wage war against Hell itself in exchange for these abilities. Despite God's acknowledgment that this path will likely result in Malefact's destruction, both parties recognize Malefact's indifference to his own fate.
The game begins with Malefact's newfound freedom and his campaign of destruction against Hell's dominion. However, God's scheme backfires spectacularly when Malefact successfully completes his rampage through Hell, escapes to Earth, and initiates Armageddon upon humanity.
=== Characters ===
Malefact is currently the only confirmed named character within the game's setting, the title having been earned through infamy rather than serving as his actual identity, which remains unknown. The specifics of his backstory are shrouded in mystery, with little known beyond the fact that he lived and operated as a serial killer in mid-nineteenth-century frontier America before his damnation.
== Design ==
=== Music & Audio ===
Levels feature ambient drones and atmospheric textures as their baseline soundscape, similar to Doom 64 or the PlayStation version of Doom. During scripted sequences or intense combat encounters, the soundtrack may sometimes shift to include instrumental tracks and death metal riffs appropriate to the game's dark thematic elements. Certain levels, like the introductory maps and final boss encounters, exclusively use instrumental tracks.
=== Visuals & Graphics ===
The game’s graphical assets are created in the same resolutions as those of its classic counterparts, with low texture resolutions by modern standards, yet without the technical color limitations that constrained developers during the 1990s. The resulting aesthetic is distinctly retro whilst simultaneously benefiting from modern technology.
Stylistically, the game’s mood is grim and gloomy, making heavy use of dark colors such as gray and black mixed with warm tones like red and orange. The game’s interpretation of hell is partly inspired by horror films such as the Hellraiser series and Event Horizon, both of which depict their own versions of hell.
== Development History ==
=== Early Concepts ===
Development of Malefact began in late 2023, when [[hardcore_gamer]] started assembling a team to create a horror-focused first-person shooter using the GZDoom engine. Early development faced difficulties in finding suitable talent until artist Stefan joined the project, proving exceptionally well-suited to realizing the game’s grimdark aesthetic. Other hopefuls had submitted their own attempts but were ultimately rejected for failing to meet hardcore_gamer’s creative vision. Later, hardcore_gamer founded [[GoreMaxxed Productions]].
Original design concepts included an elaborate spell selection interface resembling a physical spellbook menu system. Complete graphics were produced for this feature before technical limitations within the UZDoom engine necessitated abandonment of the complex interface in favor of the current spellbook item implementation. The tactical pause mechanic that freezes gameplay during spell selection survived this design transition and remains a core gameplay element.
=== Alpha Demo ===
The demo version scheduled for Q1 2026 will include two complete levels, several weapons from the main arsenal, three enemy types, and the first Book of Destruction. Access to the demo requires players to join the Discord server and register as beta testers.
[[Category:Game Information]]
49bd46a0896c1cb3b4d6e822489b900f58681b81
Zombieman
0
336
515
2025-11-09T15:55:07Z
MasterOfDisillusionment
431405
Created page with "{{MonsterInfo Infobox |title= Zombieman |image= zombieman.png |Author= Id Software |First Appearance = Doom |Mod= |Usage Rights= Copyrighted |Attacks= Hitscan (10/12/23) |Special Abilities= None |Radius= 20 |Height= 56 |HP= 200 |Speed= 8 |Pain chance= 200 |Drops= Clip |ModDB= NA |Realm667= NA |Website= NA |Forum Thread= NA }} Zombieman are an enemy in Doom. [[Category:Monsters]]"
wikitext
text/x-wiki
{{MonsterInfo Infobox
|title= Zombieman
|image= zombieman.png
|Author= Id Software
|First Appearance = Doom
|Mod=
|Usage Rights= Copyrighted
|Attacks= Hitscan (10/12/23)
|Special Abilities= None
|Radius= 20
|Height= 56
|HP= 200
|Speed= 8
|Pain chance= 200
|Drops= Clip
|ModDB= NA
|Realm667= NA
|Website= NA
|Forum Thread= NA
}}
Zombieman are an enemy in Doom.
[[Category:Monsters]]
a118f52af37bed88306aee6c3561b2cd8bcd7601
516
515
2025-11-09T15:56:31Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{MonsterInfo Infobox
|title= Zombieman
|image= zombieman.png
|Author= Id Software
|First Appearance = Doom
|Mod=
|Usage Rights= Copyrighted
|Attacks= Hitscan (10/12/23)
|Special Abilities= None
|Radius= 20
|Height= 56
|HP= 200
|Speed= 8
|Pain chance= 200
|Drops= Clip
|ModDB= NA
|Realm667= NA
|Website= NA
|Forum Thread= NA
}}
Zombiemen are an enemy in Doom.
[[Category:Monsters]]
23e3e65aba3c2692901b7b621b8d419edcbba082
517
516
2025-11-09T15:58:33Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{MonsterInfo Infobox
|title= Zombieman
|image= zombieman.png
|Author= Id Software
|First Appearance = Doom
|Mod=
|Usage Rights= Copyrighted
|Attacks= Hitscan (10/12/23)
|Special Abilities= None
|Radius= 20
|Height= 56
|HP= 200
|Speed= 8
|Pain chance= 200
|Drops= Clip
|ModDB= NA
|Realm667= NA
|Website= NA
|Forum Thread= NA
}}
Zombiemen are an enemy in Doom.
== Behavior ==
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.
== How To Use In Maps ==
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.
[[Category:Monsters]]
cb65db6d1b10e83d6c734f4418a87d09fbf939b9
519
517
2025-11-09T16:11:05Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{MonsterInfo Infobox
|title= Zombieman
|image= zombieman.png
|Author= Id Software
|First Appearance = Doom
|Mod=
|Usage Rights= Copyrighted
|Attacks= Hitscan (10/12/23)
|Special Abilities= None
|Radius= 20
|Height= 56
|HP= 200
|Speed= 8
|Pain chance= 200
|Drops= Clip
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
Zombiemen are an enemy in Doom.
== Behavior ==
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.
== How To Use In Maps ==
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.
[[Category:Monsters]]
65b0118f5c67be0569aa83316c5833dc445bb9c4
520
519
2025-11-09T16:32:05Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{MonsterInfo Infobox
|title= Zombieman
|image= zombieman.png
|Author= Id Software
|First Appearance = Doom
|Mod=
|Usage Rights= Copyrighted
|Attacks= Hitscan (10/12/23)
|Special Abilities= None
|Radius= 20
|Height= 56
|HP= 200
|Speed= 8
|Pain chance= 200
|Drops= Clip
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
Zombiemen are an enemy in Doom.
== Behavior ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
== Placement Strategies ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
[[Category:Monsters]]
5a3a6f7e24cadd966e16469e5e5c15f40c73c432
537
520
2025-11-09T20:19:39Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{MonsterInfo Infobox
|title= Zombieman
|image= zombieman.png
|Author= Id Software
|Game = [[Doom]]
|Mod=
|Usage Rights= In-game only
|Attacks= Hitscan (10/12/23)
|Special Abilities= None
|Radius= 20
|Height= 56
|HP= 200
|Speed= 8
|Pain chance= 200
|Drops= Clip
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
Zombiemen are an enemy in [[Doom]].
== Behavior ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
== Placement Strategies ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
[[Category:Monsters]]
18be76cf61402fd1cf37798ab7c6df67d2e813d8
538
537
2025-11-09T20:21:05Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{MonsterInfo Infobox
|title= Zombieman
|image= zombieman.png
|Author= Id Software
|Game = [[Doom]]
|Mod=
|Usage Rights= In-game only
|Attacks= Hitscan (10/12/23)
|Special Abilities= None
|Radius= 20
|Height= 56
|HP= 20
|Speed= 8
|Pain chance= 200
|Drops= Clip
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
Zombiemen are an enemy in [[Doom]].
== Behavior ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
== Placement Strategies ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
[[Category:Monsters]]
68495ef50b317f6a7b95ad9c3a896d7ad5805b05
539
538
2025-11-09T20:22:28Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{MonsterInfo Infobox
|title= Zombieman
|image= zombieman.png
|Author= Id Software
|Game = [[Doom]]
|Mod=
|Usage Rights= [[Usage Rights|In-game only]]
|Attacks= Hitscan (10/12/23)
|Special Abilities= None
|Radius= 20
|Height= 56
|HP= 20
|Speed= 8
|Pain chance= 200
|Drops= Clip
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
Zombiemen are an enemy in [[Doom]].
== Behavior ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
== Placement Strategies ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
[[Category:Monsters]]
adf9066478ac9723a0b802cae63d439593c391c8
Category:Monsters
14
337
518
2025-11-09T16:06:41Z
MasterOfDisillusionment
431405
Created page with "Pages related to monster and enemy actors, both official and user-created, are listed here. [[Category:Monsters]]"
wikitext
text/x-wiki
Pages related to monster and enemy actors, both official and user-created, are listed here.
[[Category:Monsters]]
ffec373f90c3e3646139e88f31b0d703b76d34bb
Assault Rifle
0
325
521
497
2025-11-09T16:35:59Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{WeaponInfo Infobox
|title= Assault Rifle
|image= WeaponAssaultRifle.png
|Author= [[GoreMaxxed Productions]]
|Mod= [[Absolute Doom]]
|Usage Rights= Must Give Credit
|Weapon Type= Hitscan
|Ammo Type= Magazine
|Primary Fire= Auto-fire
|Secondary Fire=
|Requires Reloading= No
|Radius= 16
|Height= 25
|Slot= 3
|Ammo Capacity= 100
|Damage= 15 per bullet
|Rate of Fire= High
|Accuracy= High
|Range=
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
The assault rifle is a new weapon featured in the [[Absolute Doom]] mod.
== Behavior ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
== Placement Strategies ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
[[Category:Weapons]]
aa2deb73c4992f37633826d0761346ba5ec669ca
Stimpack
0
338
523
2025-11-09T17:14:57Z
MasterOfDisillusionment
431405
Created page with "Stimpacks are health pickups in Doom. They restore 10HP. == Behavior == Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui..."
wikitext
text/x-wiki
Stimpacks are health pickups in Doom. They restore 10HP.
== Behavior ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
== Placement Strategies ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
[[Category:Items]]
548b11a553990911f688ef2eab050fea9573d852
532
523
2025-11-09T20:15:49Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{ItemInfo Infobox
|title= Stimpack
|image= ItemStimpack.png
|Author(s)= Id Software
|Game= Doom
|Mod=
|Usage Rights= In-game only
|Item Type= Health
|Effect(s)= Gives +10HP
|Radius= 20
|Height= 16
|Amount Given= 1
|Effect Duration= NA
|ModDB= 1
|Realm667= 1
|Website= 1
|Forum Thread= 1
}}
Stimpacks are health pickups in Doom. They restore 10HP.
== Behavior ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
== Placement Strategies ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
[[Category:Items]]
c48b4f001538aca9443dfba5e06c5b9bcc6a8418
533
532
2025-11-09T20:16:19Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
{{ItemInfo Infobox
|title= Stimpack
|image= ItemStimpack.png
|Author(s)= Id Software
|Game= Doom
|Mod=
|Usage Rights= In-game only
|Item Type= Health
|Effect(s)= Gives +10HP
|Radius= 20
|Height= 16
|Amount Given= 1
|Effect Duration=
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
Stimpacks are health pickups in Doom. They restore 10HP.
== Behavior ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
== Placement Strategies ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
[[Category:Items]]
0542283fd5e5f4d9735f80889fc389b6e5e6d76c
Category:Items
14
339
524
2025-11-09T17:15:41Z
MasterOfDisillusionment
431405
Created page with "All items, pickups and powerups are listed on this page. [[Category:Items]]"
wikitext
text/x-wiki
All items, pickups and powerups are listed on this page.
[[Category:Items]]
a8d48103dc68a7f03d5c4584e1b5de69ab505da2
Template:ItemInfo Infobox
10
340
525
2025-11-09T19:56:01Z
MasterOfDisillusionment
431405
Created page with "<includeonly>{{#invoke:Infobox|main |kind=ItemInfo Infobox |sep=, |image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}} |sections=General Info, Behavior, Stats, External Links |General Info=Author, Game, Mod, Usage Rights |Behavior=Item Type, Effect(s) |Stats=Radius, Height, Amount Given, Effect Duration |External Links=ModDB, Realm667, Website, Forum Thread }}</includeonly><noinclude> {{documentation}} [[Category:Infobox templates]] </noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:Infobox|main
|kind=ItemInfo Infobox
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Behavior, Stats, External Links
|General Info=Author, Game, Mod, Usage Rights
|Behavior=Item Type, Effect(s)
|Stats=Radius, Height, Amount Given, Effect Duration
|External Links=ModDB, Realm667, Website, Forum Thread
}}</includeonly><noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
71fbd7fd6f9d6f52064c8a7dfa3bf6764b76a7fc
526
525
2025-11-09T19:57:26Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
<includeonly>{{#invoke:Infobox|main
|kind=ItemInfo Infobox
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}}
|sections=General Info, Behavior, Stats, External Links
|General Info=Author(s), Game, Mod, Usage Rights
|Behavior=Item Type, Effect(s)
|Stats=Radius, Height, Amount Given, Effect Duration
|External Links=ModDB, Realm667, Website, Forum Thread
}}</includeonly><noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
ce84e61cd4d5c3a9af414274cbc045765edb277f
530
526
2025-11-09T20:14:44Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
<includeonly>{{#invoke:Infobox|main
|kind=ItemInfo Infobox
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}150px]]}}
|sections=General Info, Behavior, Stats, External Links
|General Info=Author(s), Game, Mod, Usage Rights
|Behavior=Item Type, Effect(s)
|Stats=Radius, Height, Amount Given, Effect Duration
|External Links=ModDB, Realm667, Website, Forum Thread
}}</includeonly><noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
6b0989e7841f75892cf4813d6d7b18caabaefa4e
531
530
2025-11-09T20:15:44Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
<includeonly>{{#invoke:Infobox|main
|kind=ItemInfo Infobox
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}100px]]}}
|sections=General Info, Behavior, Stats, External Links
|General Info=Author(s), Game, Mod, Usage Rights
|Behavior=Item Type, Effect(s)
|Stats=Radius, Height, Amount Given, Effect Duration
|External Links=ModDB, Realm667, Website, Forum Thread
}}</includeonly><noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
7c75929508e183c4f753855b3d9b1bf168d49ba6
Template:ItemInfo Infobox/doc
10
341
527
2025-11-09T20:04:12Z
MasterOfDisillusionment
431405
Created page with "This is an example ItemInfo infobox using the DRUID infobox framework. = Copyable code for use on other content pages = If you want to create pages using this infobox, you can copy the code below. This code is for CONTENT PAGES ONLY. It does not have anything to do with changing what the template supports. A field can be left empty if the data for it is not needed. == Example Code == Attribute Scale Reference|If you haven't already, make sure you have read the page..."
wikitext
text/x-wiki
This is an example ItemInfo infobox using the DRUID infobox framework.
= Copyable code for use on other content pages =
If you want to create pages using this infobox, you can copy the code below. This code is for CONTENT PAGES ONLY. It does not have anything to do with changing what the template supports. A field can be left empty if the data for it is not needed.
== Example Code ==
[[Attribute Scale Reference|If you haven't already, make sure you have read the page on how to correctly list actor stats.]]
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{ItemInfo Infobox
|title= Weapon Name
|image= ImageFileName.png
|Author(s)= Name of author
|Game= Name of the game if the item belongs to the base game
|Mod= Name of the mod if the item belongs to a user made mod
|Usage Rights= Specified is others are allowed to use this item in their own games or mods.
|Item Type= The type of powerup e.g. Health, Armor, power-up, etc.
|Effect(s)= Describes what the item does if it's a power-up. If it isn't, ignore this field.
|Radius= The radius of the item as it is defined in the script code.
|Width= The width of the item as it is defined in the script code.
|Amount Given= How much of the item is given upon being obtained.
|Effect Duration= How long the effect lasts in seconds if it's a power-up
|ModDB= Link to the moddb page where this item or the mod it belongs to can be found.
|Realm667= Ditto but for Realm667
|Website= Ditto but for the project website if there is one.
|Forum Thread= Ditto but for the forum thread if there is one.
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
== Clean Version ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{ItemInfo Infobox
|title=
|image=
|Author(s)=
|Game=
|Mod=
|Usage Rights=
|Item Type=
|Effect(s)=
|Radius=
|Width=
|Amount Given=
|Effect Duration=
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
115e872bef4a2f2a566ed20077c87eaae0e89f73
542
527
2025-11-09T20:36:53Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This is an example ItemInfo infobox using the DRUID infobox framework.
= Copyable code for use on other content pages =
If you want to create pages using this infobox, you can copy the code below. This code is for CONTENT PAGES ONLY. It does not have anything to do with changing what the template supports. A field can be left empty if the data for it is not needed.
== Example Code ==
Before filling these out, make sure to read the pages on [[Attribute Scale Reference|Scale Reference]] and [[Usage Rights|Usage Rights]].
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{ItemInfo Infobox
|title= Weapon Name
|image= ImageFileName.png
|Author(s)= Name of author
|Game= Name of the game if the item belongs to the base game
|Mod= Name of the mod if the item belongs to a user made mod
|Usage Rights= Specified is others are allowed to use this item in their own games or mods.
|Item Type= The type of powerup e.g. Health, Armor, power-up, etc.
|Effect(s)= Describes what the item does if it's a power-up. If it isn't, ignore this field.
|Radius= The radius of the item as it is defined in the script code.
|Width= The width of the item as it is defined in the script code.
|Amount Given= How much of the item is given upon being obtained.
|Effect Duration= How long the effect lasts in seconds if it's a power-up
|ModDB= Link to the moddb page where this item or the mod it belongs to can be found.
|Realm667= Ditto but for Realm667
|Website= Ditto but for the project website if there is one.
|Forum Thread= Ditto but for the forum thread if there is one.
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
== Clean Version ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
{{ItemInfo Infobox
|title=
|image=
|Author(s)=
|Game=
|Mod=
|Usage Rights=
|Item Type=
|Effect(s)=
|Radius=
|Width=
|Amount Given=
|Effect Duration=
|ModDB=
|Realm667=
|Website=
|Forum Thread=
}}
</syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude>
1af095698c5b873267e11e5df846d35733dba520
File:ItemStimpack.png
6
342
528
2025-11-09T20:05:34Z
MasterOfDisillusionment
431405
Stimpack item from Doom.
wikitext
text/x-wiki
== Summary ==
Stimpack item from Doom.
== Licensing ==
{{License|fairuse}}
fc531e0f7567f8f2c0f0705238974ecd08be95e8
Template:MonsterInfo Infobox
10
332
534
502
2025-11-09T20:16:57Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
<includeonly>{{#invoke:Infobox|main
|kind=MonsterInfo Infobox
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}150px]]}}
|sections=General Info, Behavior, Stats, External Links
|General Info=Author, First Appearance, Mod, Usage Rights
|Behavior=Attacks, Special Abilities
|Stats=Radius, Height, HP, Speed, Attack Speed, Pain chance, Drops
|External Links=ModDB, Realm667, Website, Forum Thread
}}</includeonly><noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
2f7a64249895a749c448eb5532866b942eefbe0c
535
534
2025-11-09T20:18:24Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
<includeonly>{{#invoke:Infobox|main
|kind=MonsterInfo Infobox
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}150px]]}}
|sections=General Info, Behavior, Stats, External Links
|General Info=Author, Game, Mod, Usage Rights
|Behavior=Attacks, Special Abilities
|Stats=Radius, Height, HP, Speed, Attack Speed, Pain chance, Drops
|External Links=ModDB, Realm667, Website, Forum Thread
}}</includeonly><noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
a91b3d2e0c2672fe22d6531e76c7676764e6d86e
Usage Rights
0
343
540
2025-11-09T20:28:31Z
MasterOfDisillusionment
431405
Created page with "Different types of assets have varying usage rights depending on their origin and the permissions granted by the original author or creator. Before using an asset in your own game or mod, make sure you are familiar with the different types of rights. == Type of Right == * In-game only: The asset belongs to an official commercial release (e.g. Doom) and may only be used or modified within the context of game mods made specifically for that game. Category:Mods And Ass..."
wikitext
text/x-wiki
Different types of assets have varying usage rights depending on their origin and the permissions granted by the original author or creator. Before using an asset in your own game or mod, make sure you are familiar with the different types of rights.
== Type of Right ==
* In-game only: The asset belongs to an official commercial release (e.g. Doom) and may only be used or modified within the context of game mods made specifically for that game.
[[Category:Mods And Assets]]
6d8a0ebd52c6df759999119affd4fa02bd3b661c
541
540
2025-11-09T20:33:27Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Different types of assets have varying usage rights depending on their origin and the permissions granted by the original author or creator. Before using an asset in your own game or mod, make sure you are familiar with the different types of rights.
== Types ==
* In-game only: The asset belongs to an official commercial release (e.g. Doom) and may only be used or modified within the context of game mods made specifically for that game.
* Credit required: The asset may be reused in other projects as long as proper credit is given to the original creator or team.
* Free use: The asset may be reused, modified, or redistributed without restriction or need for attribution.
* Unknown: The asset’s usage rights have not been clearly stated by the author, or its origin is uncertain.
[[Category:Mods And Assets]]
ca122782017f716f7005fdd71251c4db082af64d
545
541
2025-11-09T20:45:24Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Different types of assets have varying usage rights depending on their origin and the permissions granted by the original author or creator. Before using an asset in your own game or mod, make sure you are familiar with the different types of rights.
== Types ==
* In-game only: The asset belongs to an official commercial release (e.g. Doom) and may only be used or modified within the context of game mods made specifically for that game.
* Mod-locked: The asset originates from a user-created mod and may not be reused outside of that specific mod without the creator’s permission.
* Credit required: The asset may be reused in other projects as long as proper credit is given to the original creator or team.
* Free use: The asset may be reused, modified, or redistributed without restriction or need for attribution.
* Unknown: The asset’s usage rights have not been clearly stated by the author, or its origin is uncertain.
[[Category:Mods And Assets]]
d399018f4ce311dfff317e3826ed632062ec663b
Boom Tropes
0
318
546
426
2025-11-09T20:52:43Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Boom Tropes is an archive of recurring design elements, level setups, and architecture patterns found in classic FPS games and their mods. Besides being fun to browse, the tropes can also be a potentially useful source of inspiration for level designers since these tropes can be easily incorporated into their own designs.
== Encounter Design ==
Tropes related monster placement and encounters.
=== Incidental ===
Straightforward monster placement that doesn't require elaborate setups.
* [[Idle Monster]]: A monster that remains inactive until it sees the player.
* [[Door Ambush]]: A monster that waits behind a door.
* [[Lift Ambush]]: A monster that waits on top of a platform or lift.
* [[Turret Monster]]: A projectile or hitscan monster that’s nested onto an elevated space or platform.
* [[Alerted Monster]]: Like an idle monster except it’s not deaf; it can be awoken by player’s gunfire without a direct line of sight.
=== Monster Closets & Traps ===
More complex encounters involving triggers or scripts.
* [[Dropwall Trap]]: A wall or section of a wall that lowers vertically to reveal a new area with an enemy or multiple enemies.
* Item 2
== Layouts & Geometry ==
Tropes related to map layouts and area design.
=== Map Layouts ===
How maps are organized as a whole.
* Item 1
* Item 2
=== Room Modules ===
The types of areas commonly used in maps.
* [[Hub]]: An area with three or more entry points.
* [[Dead-end]]: An area with a single entry point.
* [[Corridor]]: An area with two entry points.
* [[Couplers]]: Small connector spaces used to bridge areas
== Item Placement ==
Tropes relating to item placement.
* Item 1
* Item 2
== Interactives ==
Gameplay tropes involving interactive elements, like doors, switches, teleporters, etc.
* Item 1
* Item 2
== Settings & Locations ==
Common settings and locations of levels.
* Item 1
* Item 2
== Detailing ==
Tropes related to the process of adding visual elements that enhance realism and atmosphere without altering the gameplay structure go here.
=== Geometric ===
Map/Level Detail created through level geometry.
* Item 1
* Item 2
=== Props & Greeble ===
Map/Level Detail created through placeable props and actors.
* [[Crates And Barrels]]: Storage containers, usually made from wood or alloy.
* Item 2
[[Category:Boom Tropes]]
eb851e8722f93360da4143432ccc76f119ec5943
547
546
2025-11-09T21:14:17Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Boom Tropes is an archive of recurring design elements, level setups, and architecture patterns found in classic FPS games and their mods. Besides being fun to browse, the tropes can also be a potentially useful source of inspiration for level designers since these tropes can be easily incorporated into their own designs.
== Encounter Design ==
Any tropes related to monster placement and combat setups go here.
* [[Idle Monster]]: A monster that remains inactive until it sees the player.
* [[Door Ambush]]: A monster that waits behind a door.
* [[Lift Ambush]]: A monster that waits on top of a platform or lift.
* [[Turret Monster]]: A projectile or hitscan monster that’s nested onto an elevated space or platform.
* [[Alerted Monster]]: Like an idle monster except it’s not deaf; it can be awoken by player’s gunfire without a direct line of sight.
* [[Dropwall Trap]]: A wall or section of a wall that lowers vertically to reveal a new area with an enemy or multiple enemies.
== Map Design ==
Tropes related to map design and layouts are listed here. ''Note: This section is not for detailing techniques, which have their own section below.''
* Item 1
* Item 2
== Room Modules ==
Tropes related to commonly used room types and modules are listed here.
* [[Hub]]: An area with three or more entry points.
* [[Dead-end]]: An area with a single entry point.
* [[Corridor]]: An area with two entry points.
* [[Coupler]]: Small connector spaces used to bridge areas
== Item Tropes ==
Tropes related to items, power-ups, and their use in mods and maps are listed here.
* Item 1
* Item 2
== Interactives ==
Tropes involving interactive elements, like doors, switches, teleporters, etc, are listed here.
* Decorative Door: A purely decorative door that cannot be opened.
* Keycard Door
* Item 2
== Themes & Locations ==
Common settings and locations of levels. Note that 'theme' is considered distinct from 'location'; a military outpost can belong to the Military Theme, but not every map with a military theme necessarily takes place on an outpost. For more information on themes, [[Level Theme|see this page]].
=== Themes ===
* [[Military Theme]]
* [[Industrial Theme]]
* [[Urban Theme]]
* [[Lab Theme]]
=== Locations - Military ===
* [[Army Base]]
* [[Warzone]]
== Detailing ==
Tropes related to the process of adding visual elements that enhance realism and atmosphere without altering the gameplay structure go here.
* [[Decorative Door]]: A purely decorative door that cannot be opened.
* [[Crates And Barrels]]: Storage containers, usually made from wood or alloy.
[[Category:Boom Tropes]]
ccc80ed235735bc60e9180f4665600030aa59bba
548
547
2025-11-09T21:24:01Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Boom Tropes is an archive of recurring design elements, level setups, and architecture patterns found in classic FPS games and their mods. Besides being fun to browse, the tropes can also be a potentially useful source of inspiration for level designers since these tropes can be easily incorporated into their own designs.
== Encounter Design ==
Any tropes related to monster placement and combat setups go here.
* [[Idle Monster]]: A monster that remains inactive until it sees the player.
* [[Door Ambush]]: A monster that waits behind a door.
* [[Lift Ambush]]: A monster that waits on top of a platform or lift.
* [[Turret Monster]]: A projectile or hitscan monster that’s nested onto an elevated space or platform.
* [[Alerted Monster]]: Like an idle monster except it’s not deaf; it can be awoken by player’s gunfire without a direct line of sight.
* [[Dropwall Trap]]: A wall or section of a wall that lowers vertically to reveal a new area with an enemy or multiple enemies.
== Map Design & Layouts ==
Tropes related to map design and layouts are listed here. ''Note: This section is not for detailing techniques, which have their own section below.''
* [[Linear Layout]]
* [[hub-and-spoke Layout]]
* [[Hub Room]]: An area with three or more entry points.
* [[Dead-end Room]]: A area or room with a single entry point.
* [[Corridor]]: An area or room with two entry points.
* [[Coupler]]: A small connector spaces used to bridge areas
== Item Tropes ==
Tropes related to items, power-ups, and their use in mods and maps are listed here.
* Item 1
* Item 2
== Interactives ==
Tropes involving interactive elements, like doors, switches, teleporters, etc, are listed here.
* Decorative Door: A purely decorative door that cannot be opened.
* Keycard Door
* Item 2
== Themes & Locations ==
Common settings and locations of levels. Note that 'theme' is considered distinct from 'location'; a military outpost can belong to the Military Theme, but not every map with a military theme necessarily takes place on an outpost.
=== Themes ===
* [[Military Theme]]
* [[Industrial Theme]]
* [[Urban Theme]]
* [[Technology Theme]]
=== Locations - Military ===
* [[Army Base]]
* [[Warzone]]
=== Locations - Industrial ===
* [[Warehouse]]
* [[Train]]
=== Locations - Urban ===
* [[Downtown]]
* [[Suburb]]
=== Locations - Lab ===
* [[Research Facility]]
* [[Lab Complex]]
== Detailing ==
Tropes related to the process of adding visual elements that enhance realism and atmosphere without altering the gameplay structure go here.
* [[Decorative Door]]: A purely decorative door that cannot be opened.
* [[Crates And Barrels]]: Storage containers, usually made from wood or alloy.
[[Category:Boom Tropes]]
6842c68232c9126691918313185515a3ae4a1f65
549
548
2025-11-09T21:28:11Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Boom Tropes is an archive of recurring design elements, level setups, and architecture patterns found in classic FPS games and their mods. Besides being fun to browse, the tropes can also be a potentially useful source of inspiration for level designers since these tropes can be easily incorporated into their own designs.
== Encounter Design ==
Any tropes related to monster placement and combat setups go here.
* [[Idle Monster]]: A monster that remains inactive until it sees the player.
* [[Door Ambush]]: A monster that waits behind a door.
* [[Lift Ambush]]: A monster that waits on top of a platform or lift.
* [[Turret Monster]]: A projectile or hitscan monster that’s nested onto an elevated space or platform.
* [[Alerted Monster]]: Like an idle monster except it’s not deaf; it can be awoken by player’s gunfire without a direct line of sight.
* [[Dropwall Trap]]: A wall or section of a wall that lowers vertically to reveal a new area with an enemy or multiple enemies.
== Map Design & Layouts ==
Tropes related to map design and layouts are listed here. ''Note: This section is not for detailing techniques, which have their own section below.''
* [[Linear Layout]]
* [[hub-and-spoke Layout]]
* [[Hub Room]]: An area with three or more entry points.
* [[Dead-end Room]]: A area or room with a single entry point.
* [[Corridor]]: An area or room with two entry points.
* [[Coupler]]: A small connector spaces used to bridge areas
== Item Tropes ==
Tropes related to items, power-ups, and their use in mods and maps are listed here.
* [[Caged Powerup]]
== Doors, Lifts, and Teleporters ==
Tropes involving interactive elements, like doors, switches, teleporters, etc, are listed here.
* [[Teleporter]]
* [[Door]]
* [[Locked Door]]
* [[Switch Door]]
* [[Timed Door]]
* [[Shootable Door]]
== Themes & Locations ==
Common settings and locations of levels. Note that 'theme' is considered distinct from 'location'; a military outpost can belong to the Military Theme, but not every map with a military theme necessarily takes place on an outpost.
=== Themes ===
* [[Military Theme]]
* [[Industrial Theme]]
* [[Urban Theme]]
* [[Technology Theme]]
=== Locations - Military ===
* [[Army Base]]
* [[Warzone]]
=== Locations - Industrial ===
* [[Warehouse]]
* [[Train]]
=== Locations - Urban ===
* [[Downtown]]
* [[Suburb]]
=== Locations - Lab ===
* [[Research Facility]]
* [[Lab Complex]]
== Detailing ==
Tropes related to the process of adding visual elements that enhance realism and atmosphere without altering the gameplay structure go here.
* [[Decorative Door]]: A purely decorative door that cannot be opened.
* [[Crates And Barrels]]: Storage containers, usually made from wood or alloy.
[[Category:Boom Tropes]]
c505638c7f6f572b79851e6cc51e44cfd9aa83ce
550
549
2025-11-09T21:36:50Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Boom Tropes is an archive of recurring design elements, level setups, and architecture patterns found in classic FPS games and their mods. Besides being fun to browse, the tropes can also be a potentially useful source of inspiration for level designers since these tropes can be easily incorporated into their own designs.
== Encounter Design ==
Any tropes related to monster placement and combat setups go here.
* [[Idle Monster]]: A monster that remains inactive until it sees the player.
* [[Door Ambush]]: A monster that waits behind a door.
* [[Lift Ambush]]: A monster that waits on top of a platform or lift.
* [[Turret Monster]]: A projectile or hitscan monster that’s nested onto an elevated space or platform.
* [[Alerted Monster]]: Like an idle monster except it’s not deaf; it can be awoken by player’s gunfire without a direct line of sight.
* [[Dropwall Trap]]: A wall or section of a wall that lowers vertically to reveal a new area with an enemy or multiple enemies.
== Map Design & Layouts ==
Tropes related to map design and layouts are listed here. ''Note: This section is not for detailing techniques, which have their own section below.''
* [[Linear Layout]]
* [[hub-and-spoke Layout]]
* [[Hub Room]]: An area with three or more entry points.
* [[Dead-end Room]]: A area or room with a single entry point.
* [[Corridor]]: An area or room with two entry points.
* [[Coupler]]: A small connector spaces used to bridge areas
== Item Tropes ==
Tropes related to items, power-ups, and their use in mods and maps are listed here.
* [[Caged Powerup]]
== Doors, Lifts, and Teleporters ==
Tropes involving interactive elements, like doors, switches, teleporters, etc, are listed here.
* [[Teleporter]]
* [[Door]]
* [[Locked Door]]
* [[Switch Door]]
* [[Timed Door]]
* [[Shootable Door]]
== Themes & Locations ==
Common settings and locations of levels. Note that 'theme' is considered distinct from 'location'; a military outpost can belong to the Military Theme, but not every map with a military theme necessarily takes place on an outpost.
=== Themes ===
* [[Military Theme]]
* [[Industrial Theme]]
* [[Urban Theme]]
* [[Technology Theme]]
=== Locations - Military ===
* [[Army Base]]
* [[Warzone]]
=== Locations - Industrial ===
* [[Warehouse]]
* [[Train]]
=== Locations - Urban ===
* [[Downtown]]
* [[Suburb]]
=== Locations - Lab ===
* [[Research Facility]]
* [[Lab Complex]]
== Detailing ==
Tropes related to the process of adding visual elements that enhance realism and atmosphere are listed here. Note that detail created through level geometry is considered separate from detail created through props (e.g. 'greeble').
=== Geometric Detail ===
* [[Decorative Door]]: A purely decorative door that cannot be opened.
* [[Indented section]]: A section of wall or surface is pushed inward to create depth and visual interest.
* [[Protruding section]]: A section of wall or surface is pushed outward to create depth and visual interest.
=== Prop/Greeble Detail ===
* [[Crates And Barrels]]: Storage containers, usually made from wood or alloy.
[[Category:Boom Tropes]]
5afbfdeba292462a3a686bae8436f2585e645e83
551
550
2025-11-09T21:41:56Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Boom Tropes is an archive of recurring design elements, level setups, and architecture patterns found in classic FPS games and their mods. Besides being fun to browse, the tropes can also be a potentially useful source of inspiration for level designers since these tropes can be easily incorporated into their own designs.
== Encounter Design ==
Any tropes related to monster placement and combat setups go here.
* [[Idle Monster]]: A monster that remains inactive until it sees the player.
* [[Door Ambush]]: A monster that waits behind a door.
* [[Lift Ambush]]: A monster that waits on top of a platform or lift.
* [[Turret Monster]]: A projectile or hitscan monster that’s nested onto an elevated space or platform.
* [[Alerted Monster]]: Like an idle monster except it’s not deaf; it can be awoken by player’s gunfire without a direct line of sight.
* [[Dropwall Trap]]: A wall or section of a wall that lowers vertically to reveal a new area with an enemy or multiple enemies.
== Map Design & Layouts ==
Tropes related to map design and layouts are listed here. ''Note: This section is not for detailing techniques, which have their own section below.''
* [[Linear Layout]]
* [[hub-and-spoke Layout]]
* [[Hub Room]]: An area with three or more entry points.
* [[Dead-end Room]]: A area or room with a single entry point.
* [[Corridor]]: An area or room with two entry points.
* [[Coupler]]: A small connector spaces used to bridge areas
== Item Tropes ==
Tropes related to items, power-ups, and their use in mods and maps are listed here.
* [[Pickup Trap]]: A pickup triggers a trap when collected.
* [[Taunting Pickup]]: A pickup item, often a power-up or weapon, taunts the player with its presence but seems unreachable at first glance.
== Doors, Lifts, and Teleporters ==
Tropes involving interactive elements, like doors, switches, teleporters, etc, are listed here.
* [[Teleporter]]
* [[Door]]
* [[Locked Door]]
* [[Switch Door]]
* [[Timed Door]]
* [[Shootable Door]]
== Themes & Locations ==
Common settings and locations of levels. Note that 'theme' is considered distinct from 'location'; a military outpost can belong to the Military Theme, but not every map with a military theme necessarily takes place on an outpost.
=== Themes ===
* [[Military Theme]]
* [[Industrial Theme]]
* [[Urban Theme]]
* [[Technology Theme]]
=== Locations - Military ===
* [[Army Base]]
* [[Warzone]]
=== Locations - Industrial ===
* [[Warehouse]]
* [[Train]]
=== Locations - Urban ===
* [[Downtown]]
* [[Suburb]]
=== Locations - Lab ===
* [[Research Facility]]
* [[Lab Complex]]
== Detailing ==
Tropes related to the process of adding visual elements that enhance realism and atmosphere are listed here. Note that detail created through level geometry is considered separate from detail created through props (e.g. 'greeble').
=== Geometric Detail ===
* [[Decorative Door]]: A purely decorative door that cannot be opened.
* [[Indented section]]: A section of wall or surface is pushed inward to create depth and visual interest.
* [[Protruding section]]: A section of wall or surface is pushed outward to create depth and visual interest.
=== Prop/Greeble Detail ===
* [[Crates And Barrels]]: Storage containers, usually made from wood or alloy.
[[Category:Boom Tropes]]
11536595347936442d21d032807effc259fcc6bc
552
551
2025-11-09T22:17:29Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Boom Tropes is an archive of recurring design elements, level setups, and architecture patterns found in classic FPS games and their mods. Besides being fun to browse, the tropes can also be a potentially useful source of inspiration for level designers since these tropes can be easily incorporated into their own designs.
== Encounter Design ==
Any tropes related to monster placement and combat setups go here.
* [[Idle Monster]]: A monster that remains inactive until it sees the player.
* [[Door Ambush]]: A monster that waits behind a door.
* [[Lift Ambush]]: A monster that waits on top of a platform or lift.
* [[Turret Monster]]: A projectile or hitscan monster that’s nested onto an elevated space or platform.
* [[Alerted Monster]]: Like an idle monster except it’s not deaf; it can be awoken by player’s gunfire without a direct line of sight.
* [[Dropwall Trap]]: A wall or section of a wall that lowers vertically to reveal a new area with an enemy or multiple enemies.
== Room Layouts ==
Tropes related to map design and layouts are listed here. ''Note: This section is not for detailing techniques, which have their own section below.''
* [[Hub Room]]: An area with three or more entry points.
* [[Dead-end Room]]: A area or room with a single entry point.
* [[Corridor Room]]: An area or room with two entry points.
* [[Coupler Room]]: A small connector spaces used to bridge areas
* [[Maze Room]]: An area consisting of a maze the player must navigate through.
== Item Tropes ==
Tropes related to items, power-ups, and their use in mods and maps are listed here.
* [[Pickup Trap]]: A pickup triggers a trap when collected.
* [[Taunting Pickup]]: A pickup item, often a power-up or weapon, taunts the player with its presence but seems unreachable at first glance.
== Doors, Lifts, and Teleporters ==
Tropes involving interactive elements, like doors, switches, teleporters, etc, are listed here.
* [[Teleporter]]: A linedef that teleports the player or monster someplace else when crossed.
* [[Door]]: An interactive door that the player and or monsters can open.
* [[Switch Door]]: A door that can only be opened with a switch.
* [[Timed Door]]: A door that stays open for a predetermined period before closing and requiring reactivation.
* [[Shootable Door]]: A door that only opens when dealt damage by the player's weapons or a stray projectile/attack.
== Themes & Locations ==
Common settings and locations of levels. Note that 'theme' is considered distinct from 'location'; a military outpost can belong to the Military Theme, but not every map with a military theme necessarily takes place on an outpost.
=== Themes ===
* [[Military Theme]]: Military locations like army bases.
* [[Industrial Theme]]: Industrial environments like warehouses and factories.
* [[Urban Theme]]: City and urban environments.
* [[Technology Theme]]: High-tech and science fiction esque settings like research labs and spaceships.
* [[Hell Theme]]: Locations set in hell or hellish environments.
=== Locations - Military ===
* [[Army Base Level]]: Military bases and outposts/garrisons.
* [[Warzone Level]]: Levels taking place in war-torn locations and battlefields.
=== Locations - Industrial ===
* [[Warehouse Level]]: Warehouse complex and storage facilities.
* [[Train Level]]: A (usually) liner train level.
=== Locations - Urban ===
* [[Downtown Level]]: City downtown area.
* [[Suburb Level]]: City suburb area.
=== Locations - Technology ===
* [[Spaceship Level]]: A level taking place on a spaceship.
* [[Lab Level]]
=== Locations - Hell ===
* [[Hell Gate Level]]: A level representing the literal gates of hell.
* [[River Styx Level]]: The river Styx from Greek mythology.
== Detailing ==
Tropes related to the process of adding visual elements that enhance realism and atmosphere are listed here. Note that detail created through level geometry is considered separate from detail created through props (e.g. 'greeble').
=== Geometric Detail ===
* [[Decorative Door]]: A purely decorative door that cannot be opened.
* [[Indented section]]: A section of wall or surface is pushed inward to create depth and visual interest.
* [[Protruding section]]: A section of wall or surface is pushed outward to create depth and visual interest.
=== Prop/Greeble Detail ===
* [[Crates And Barrels]]: Storage containers, usually made from wood or alloy.
[[Category:Boom Tropes]]
0d3b9e125aaef042b54f4d06f25cd4875758a5ee
Boom Tropes
0
318
553
552
2025-11-09T22:25:09Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Boom Tropes is an archive of recurring design elements, level setups, and architecture patterns found in classic FPS games and their mods. Besides being fun to browse, the tropes can also be a potentially useful source of inspiration for level designers since these tropes can be easily incorporated into their own designs.
== Encounter Design ==
Any tropes related to monster placement and combat setups go here.
* [[Idle Monster]]: A monster that remains inactive until it sees the player.
* [[Door Ambush]]: A monster that waits behind a door.
* [[Lift Ambush]]: A monster that waits on top of a platform or lift.
* [[Turret Monster]]: A projectile or hitscan monster that’s nested onto an elevated space or platform.
* [[Alerted Monster]]: Like an idle monster except it’s not deaf; it can be awoken by player’s gunfire without a direct line of sight.
* [[Dropwall Trap]]: A wall or section of a wall that lowers vertically to reveal a new area with an enemy or multiple enemies.
== Area Layouts ==
Tropes related to map design and layouts are listed here. ''Note: This section is not for detailing techniques, which have their own section below.''
* [[Hub Area]]: An area with three or more entry points.
* [[Dead-end Area]]: A area with a single entry point.
* [[Corridor Area]]: An area with two entry points.
* [[Coupler Area]]: An area used to bridge two adjacent areas.
* [[Maze Area]]: An area consisting of a maze the player must navigate through.
* [[Perimeter Area]]: An area that borders and or envelopes another area or areas, often used to represent exterior locations.
== Item Tropes ==
Tropes related to items, power-ups, and their use in mods and maps are listed here.
* [[Pickup Trap]]: A pickup triggers a trap when collected.
* [[Taunting Pickup]]: A pickup item, often a power-up or weapon, taunts the player with its presence but seems unreachable at first glance.
== Doors, Lifts, and Teleporters ==
Tropes involving interactive elements, like doors, switches, teleporters, etc, are listed here.
* [[Teleporter]]: A linedef that teleports the player or monster someplace else when crossed.
* [[Door]]: An interactive door that the player and or monsters can open.
* [[Switch Door]]: A door that can only be opened with a switch.
* [[Timed Door]]: A door that stays open for a predetermined period before closing and requiring reactivation.
* [[Shootable Door]]: A door that only opens when dealt damage by the player's weapons or a stray projectile/attack.
== Themes & Locations ==
Common settings and locations of levels. Note that 'theme' is considered distinct from 'location'; a military outpost can belong to the Military Theme, but not every map with a military theme necessarily takes place on an outpost.
=== Themes ===
* [[Military Theme]]: Military locations like army bases.
* [[Industrial Theme]]: Industrial environments like warehouses and factories.
* [[Urban Theme]]: City and urban environments.
* [[Technology Theme]]: High-tech and science fiction esque settings like research labs and spaceships.
* [[Hell Theme]]: Locations set in hell or hellish environments.
=== Locations - Military ===
* [[Army Base Level]]: Military bases and outposts/garrisons.
* [[Warzone Level]]: Levels taking place in war-torn locations and battlefields.
=== Locations - Industrial ===
* [[Warehouse Level]]: Warehouse complex and storage facilities.
* [[Train Level]]: A (usually) liner train level.
=== Locations - Urban ===
* [[Downtown Level]]: City downtown area.
* [[Suburb Level]]: City suburb area.
=== Locations - Technology ===
* [[Spaceship Level]]: A level taking place on a spaceship.
* [[Lab Level]]
=== Locations - Hell ===
* [[Hell Gate Level]]: A level representing the literal gates of hell.
* [[River Styx Level]]: The river Styx from Greek mythology.
== Detailing ==
Tropes related to the process of adding visual elements that enhance realism and atmosphere are listed here. Note that detail created through level geometry is considered separate from detail created through props (e.g. 'greeble').
=== Geometric Detail ===
* [[Decorative Door]]: A purely decorative door that cannot be opened.
* [[Indented section]]: A section of wall or surface is pushed inward to create depth and visual interest.
* [[Protruding section]]: A section of wall or surface is pushed outward to create depth and visual interest.
=== Prop/Greeble Detail ===
* [[Crates And Barrels]]: Storage containers, usually made from wood or alloy.
[[Category:Boom Tropes]]
573e1f904c46d26e364aba449eb3c7f933997b54
558
553
2025-11-09T22:41:49Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Boom Tropes is an archive of recurring design elements, level setups, and architecture patterns found in classic FPS games and their mods. Besides being fun to browse, the tropes can also be a potentially useful source of inspiration for level designers since these tropes can be easily incorporated into their own designs.
== Encounter Design ==
Any tropes related to monster placement and combat setups go here.
* [[Idle Monster]]: A monster that remains inactive until it sees the player.
* [[Door Ambush]]: A monster that waits behind a door.
* [[Lift Ambush]]: A monster that waits on top of a platform or lift.
* [[Turret Monster]]: A projectile or hitscan monster that’s nested onto an elevated space or platform.
* [[Alerted Monster]]: Like an idle monster except it’s not deaf; it can be awoken by player’s gunfire without a direct line of sight.
* [[Dropwall Trap]]: A wall or section of a wall that lowers vertically to reveal a new area with an enemy or multiple enemies.
== Area Layouts ==
Tropes related to map design and layouts are listed here. ''Note: This section is not for detailing techniques, which have their own section below.''
* [[Hub Area]]: An area with three or more entry points.
* [[Dead-end Area]]: A area with a single entry point.
* [[Corridor Area]]: An area with two entry points.
* [[Coupler Area]]: An area used to bridge two adjacent areas.
* [[Maze Area]]: An area consisting of a maze the player must navigate through.
* [[Perimeter Area]]: An area that borders and or envelopes another area or areas, often used to represent exterior locations.
== Item Tropes ==
Tropes related to items, power-ups, and their use in mods and maps are listed here.
* [[Pickup Trap]]: A pickup triggers a trap when collected.
* [[Taunting Pickup]]: A pickup item, often a power-up or weapon, taunts the player with its presence but seems unreachable at first glance.
== Doors, Lifts, and Teleporters ==
Tropes involving interactive elements, like doors, switches, teleporters, etc, are listed here.
* [[Teleporter]]: A linedef that teleports the player or monster someplace else when crossed.
* [[Door]]: An interactive door that the player and or monsters can open.
* [[Switch Door]]: A door that can only be opened with a switch.
* [[Timed Door]]: A door that stays open for a predetermined period before closing and requiring reactivation.
* [[Shootable Door]]: A door that only opens when dealt damage by the player's weapons or a stray projectile/attack.
== Themes & Locations ==
Common settings and locations of levels. Note that 'theme' is considered distinct from 'location'; a military outpost can belong to the Military Theme, but not every map with a military theme necessarily takes place on an outpost.
=== Themes ===
* [[Military Theme]]: Military locations like army bases.
* [[Industrial Theme]]: Industrial environments like warehouses and factories.
* [[Urban Theme]]: City and urban environments.
* [[Technology Theme]]: High-tech and science fiction esque settings like research labs and spaceships.
* [[Hell Theme]]: Locations set in hell or hellish environments.
=== Locations - Military ===
* [[Army Base Level]]: Military bases and outposts/garrisons.
* [[Warzone Level]]: Levels taking place in war-torn locations and battlefields.
=== Locations - Industrial ===
* [[Warehouse Level]]: Warehouse complex and storage facilities.
* [[Train Level]]: A (usually) liner train level.
=== Locations - Urban ===
* [[Downtown Level]]: City downtown area.
* [[Suburb Level]]: City suburb area.
=== Locations - Technology ===
* [[Spaceship Level]]: A level taking place on a spaceship.
* [[Lab Level]]
=== Locations - Hell ===
* [[Hell Gate Level]]: A level representing the literal gates of hell.
* [[River Styx Level]]: The river Styx from Greek mythology.
== Detailing ==
Tropes related to the process of adding visual elements that enhance realism and atmosphere are listed here.
* [[Decorative Door Detail]]: A purely decorative door that cannot be opened.
* [[Indented section Detail]]: A section of wall or surface is pushed inward to create depth and visual interest.
* [[Protruding section Detail]]: A section of wall or surface is pushed outward to create depth and visual interest.
* [[Greeble Detail]]: Small-scale decorative geometry, texture work, and props used to make environments look more intricate and believable.
* [[Crates And Barrels]]: Storage containers, usually made from wood or alloy.
[[Category:Boom Tropes]]
6b2fe5b88b4f937ed61a0ee3252f04585885b4a0
559
558
2025-11-09T22:42:01Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Boom Tropes is an archive of recurring design elements, level setups, and architecture patterns found in classic FPS games and their mods. Besides being fun to browse, the tropes can also be a potentially useful source of inspiration for level designers since these tropes can be easily incorporated into their own designs.
== Encounter Design ==
Any tropes related to monster placement and combat setups go here.
* [[Idle Monster]]: A monster that remains inactive until it sees the player.
* [[Door Ambush]]: A monster that waits behind a door.
* [[Lift Ambush]]: A monster that waits on top of a platform or lift.
* [[Turret Monster]]: A projectile or hitscan monster that’s nested onto an elevated space or platform.
* [[Alerted Monster]]: Like an idle monster except it’s not deaf; it can be awoken by player’s gunfire without a direct line of sight.
* [[Dropwall Trap]]: A wall or section of a wall that lowers vertically to reveal a new area with an enemy or multiple enemies.
== Area Layouts ==
Tropes related to map design and layouts are listed here. ''Note: This section is not for detailing techniques, which have their own section below.''
* [[Hub Area]]: An area with three or more entry points.
* [[Dead-end Area]]: A area with a single entry point.
* [[Corridor Area]]: An area with two entry points.
* [[Coupler Area]]: An area used to bridge two adjacent areas.
* [[Maze Area]]: An area consisting of a maze the player must navigate through.
* [[Perimeter Area]]: An area that borders and or envelopes another area or areas, often used to represent exterior locations.
== Item Tropes ==
Tropes related to items, power-ups, and their use in mods and maps are listed here.
* [[Pickup Trap]]: A pickup triggers a trap when collected.
* [[Taunting Pickup]]: A pickup item, often a power-up or weapon, taunts the player with its presence but seems unreachable at first glance.
== Doors, Lifts, and Teleporters ==
Tropes involving interactive elements, like doors, switches, teleporters, etc, are listed here.
* [[Teleporter]]: A linedef that teleports the player or monster someplace else when crossed.
* [[Door]]: An interactive door that the player and or monsters can open.
* [[Switch Door]]: A door that can only be opened with a switch.
* [[Timed Door]]: A door that stays open for a predetermined period before closing and requiring reactivation.
* [[Shootable Door]]: A door that only opens when dealt damage by the player's weapons or a stray projectile/attack.
== Themes & Locations ==
Common settings and locations of levels. Note that 'theme' is considered distinct from 'location'; a military outpost can belong to the Military Theme, but not every map with a military theme necessarily takes place on an outpost.
=== Themes ===
* [[Military Theme]]: Military locations like army bases.
* [[Industrial Theme]]: Industrial environments like warehouses and factories.
* [[Urban Theme]]: City and urban environments.
* [[Technology Theme]]: High-tech and science fiction esque settings like research labs and spaceships.
* [[Hell Theme]]: Locations set in hell or hellish environments.
=== Locations - Military ===
* [[Army Base Level]]: Military bases and outposts/garrisons.
* [[Warzone Level]]: Levels taking place in war-torn locations and battlefields.
=== Locations - Industrial ===
* [[Warehouse Level]]: Warehouse complex and storage facilities.
* [[Train Level]]: A (usually) liner train level.
=== Locations - Urban ===
* [[Downtown Level]]: City downtown area.
* [[Suburb Level]]: City suburb area.
=== Locations - Technology ===
* [[Spaceship Level]]: A level taking place on a spaceship.
* [[Lab Level]]
=== Locations - Hell ===
* [[Hell Gate Level]]: A level representing the literal gates of hell.
* [[River Styx Level]]: The river Styx from Greek mythology.
== Detailing ==
Tropes related to the process of adding visual elements that enhance realism and atmosphere are listed here.
* [[Decorative Door Detail]]: A purely decorative door that cannot be opened.
* [[Indented section Detail]]: A section of wall or surface is pushed inward to create depth and visual interest.
* [[Protruding section Detail]]: A section of wall or surface is pushed outward to create depth and visual interest.
* [[Greeble Detail]]: Small-scale decorative geometry, texture work, and props used to make environments look more intricate and believable.
* [[Crates And Barrels]]: Storage containers, usually made from wood or alloy.
[[Category:Boom Tropes]]
c3d18c2999e0e2ae4b625919ce5d2f072f249dd3
560
559
2025-11-09T22:42:52Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Boom Tropes is an archive of recurring design elements, level setups, and architecture patterns found in classic FPS games and their mods. Besides being fun to browse, the tropes can also be a potentially useful source of inspiration for level designers since these tropes can be easily incorporated into their own designs.
== Encounter Design ==
Any tropes related to monster placement and combat setups go here.
* [[Idle Monster]]: A monster that remains inactive until it sees the player.
* [[Door Ambush]]: A monster that waits behind a door.
* [[Lift Ambush]]: A monster that waits on top of a platform or lift.
* [[Turret Monster]]: A projectile or hitscan monster that’s nested onto an elevated space or platform.
* [[Alerted Monster]]: Like an idle monster except it’s not deaf; it can be awoken by player’s gunfire without a direct line of sight.
* [[Dropwall Trap]]: A wall or section of a wall that lowers vertically to reveal a new area with an enemy or multiple enemies.
== Area Layouts ==
Tropes related to map design and layouts are listed here. ''Note: This section is not for detailing techniques, which have their own section below.''
* [[Hub Area]]: An area with three or more entry points.
* [[Dead-end Area]]: A area with a single entry point.
* [[Corridor Area]]: An area with two entry points.
* [[Coupler Area]]: An area used to bridge two adjacent areas.
* [[Maze Area]]: An area consisting of a maze the player must navigate through.
* [[Perimeter Area]]: An area that borders and or envelopes another area or areas, often used to represent exterior locations.
== Item Tropes ==
Tropes related to items, power-ups, and their use in mods and maps are listed here.
* [[Pickup Trap]]: A pickup triggers a trap when collected.
* [[Taunting Pickup]]: A pickup item, often a power-up or weapon, taunts the player with its presence but seems unreachable at first glance.
== Doors, Lifts, and Teleporters ==
Tropes involving interactive elements, like doors, switches, teleporters, etc, are listed here.
* [[Teleporter]]: A linedef that teleports the player or monster someplace else when crossed.
* [[Door]]: An interactive door that the player and or monsters can open.
* [[Switch Door]]: A door that can only be opened with a switch.
* [[Timed Door]]: A door that stays open for a predetermined period before closing and requiring reactivation.
* [[Shootable Door]]: A door that only opens when dealt damage by the player's weapons or a stray projectile/attack.
== Themes & Locations ==
Common settings and locations of levels. Note that 'theme' is considered distinct from 'location'; a military outpost can belong to the Military Theme, but not every map with a military theme necessarily takes place on an outpost.
=== Themes ===
* [[Military Theme]]: Military locations like army bases.
* [[Industrial Theme]]: Industrial environments like warehouses and factories.
* [[Urban Theme]]: City and urban environments.
* [[Technology Theme]]: High-tech and science fiction esque settings like research labs and spaceships.
* [[Hell Theme]]: Locations set in hell or hellish environments.
=== Locations - Military ===
* [[Army Base Level]]: Military bases and outposts/garrisons.
* [[Warzone Level]]: Levels taking place in war-torn locations and battlefields.
=== Locations - Industrial ===
* [[Warehouse Level]]: Warehouse complex and storage facilities.
* [[Train Level]]: A (usually) liner train level.
=== Locations - Urban ===
* [[Downtown Level]]: City downtown area.
* [[Suburb Level]]: City suburb area.
=== Locations - Technology ===
* [[Spaceship Level]]: A level taking place on a spaceship.
* [[Lab Level]]
=== Locations - Hell ===
* [[Hell Gate Level]]: A level representing the literal gates of hell.
* [[River Styx Level]]: The river Styx from Greek mythology.
== Detailing ==
Tropes related to the process of adding visual elements that enhance realism and atmosphere are listed here.
* [[Decorative Door Detail]]: A purely decorative door that cannot be opened.
* [[Indented section Detail]]: A section of wall or surface is pushed inward to create depth and visual interest.
* [[Protruding section Detail]]: A section of wall or surface is pushed outward to create depth and visual interest.
* [[Greeble Detail]]: Small-scale decorative geometry, texture work, and props used to make environments look more intricate and believable.
* [[Crates And Barrels Detail]]: Storage containers, usually made from wood or alloy.
[[Category:Boom Tropes]]
55e7c72c9a88d2eaad9867d1e35962488b81e96b
Crates And Barrels Detail
0
310
554
400
2025-11-09T22:28:40Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Crates and barrels are storage containers, usually made from wood or metal alloys. The simplicity of these props makes them extremely common, as they provide an easy way to add greeble to a scene. However, they can also feel like lazy detailing if overused. They are more common in industrial settings. Although crates are considered a prop or greeble trope, it is possible to create them through level geometry, though sprites are often used for their simplicity. This depends on the game and the level designer's goals.
== Types & Variants =
* Static: Purely part of the scenery and cannot be damaged or interacted with. These are often made from geometry, though some games may use models or sprites.
* Destructible: Has its own health pool and can be destroyed when it reaches zero. Depending on the game, there may be multiple states depicting various levels of damage, or it may simply be destroyed outright when its HP reaches zero.
* Lootable: Can be opened or destroyed to reveal items or pickups. These are less common in classic games, though many user-made mods include them.
* Explosive: High-explosive boxes and barrels that blow up when destroyed, dealing damage to nearby actors. These are often colored differently (e.g. red) to call attention to their hazardous nature, but this is not universal.
== Image Examples ==
<gallery>
TropeBarrels.png| Sprites for Wooden barrels - Source: Heretic's E1M1
TropeCrates.jpg| Crates created from level Geometry - Source: Ultimate Doom's E2M2
</gallery>
[[Category:Boom Tropes]]
81ca5bc52d2158283cadd67b623f2eda74f97627
555
554
2025-11-09T22:29:06Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Crates and barrels are storage containers, usually made from wood or metal alloys. The simplicity of these props makes them extremely common, as they provide an easy way to add greeble to a scene. However, they can also feel like lazy detailing if overused. They are more common in industrial settings. Although crates are considered a prop or greeble trope, it is possible to create them through level geometry, though sprites are often used for their simplicity. This depends on the game and the level designer's goals.
== Types & Variants =
* '''Static:''' Purely part of the scenery and cannot be damaged or interacted with. These are often made from geometry, though some games may use models or sprites.
* '''Destructible:''' Has its own health pool and can be destroyed when it reaches zero. Depending on the game, there may be multiple states depicting various levels of damage, or it may simply be destroyed outright when its HP reaches zero.
* '''Lootable:''' Can be opened or destroyed to reveal items or pickups. These are less common in classic games, though many user-made mods include them.
* '''Explosive:''' High-explosive boxes and barrels that blow up when destroyed, dealing damage to nearby actors. These are often colored differently (e.g. red) to call attention to their hazardous nature, but this is not universal.
== Image Examples ==
<gallery>
TropeBarrels.png| Sprites for Wooden barrels - Source: Heretic's E1M1
TropeCrates.jpg| Crates created from level Geometry - Source: Ultimate Doom's E2M2
</gallery>
[[Category:Boom Tropes]]
10fceb9057e3512f4e2a650468a0cc2b3155220a
556
555
2025-11-09T22:29:30Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Crates and barrels are storage containers, usually made from wood or metal alloys. The simplicity of these props makes them extremely common, as they provide an easy way to add greeble to a scene. However, they can also feel like lazy detailing if overused. They are more common in industrial settings. Although crates are considered a prop or greeble trope, it is possible to create them through level geometry, though sprites are often used for their simplicity. This depends on the game and the level designer's goals.
== Types & Variants =
* '''Static:''' Purely part of the scenery and cannot be damaged or interacted with. These are often made from geometry, though some games may use models or sprites.
* '''Destructible:''' Has its own health pool and can be destroyed when it reaches zero. Depending on the game, there may be multiple states depicting various levels of damage, or it may simply be destroyed outright when its HP reaches zero.
* '''Lootable:''' Can be opened or destroyed to reveal items or pickups. These are less common in classic games, though many user-made mods include them.
* '''Explosive:''' High-explosive boxes and barrels that blow up when destroyed, dealing damage to nearby actors. These are often colored differently (e.g. red) to call attention to their hazardous nature, but this is not universal.
== Image Examples ==
<gallery>
TropeBarrels.png| Sprites for Wooden barrels - Source: Heretic's E1M1
TropeCrates.jpg| Crates created from level Geometry - Source: Ultimate Doom's E2M2
</gallery>
[[Category:Boom Tropes]]
ff388f08ce243396638082f76fdf44fa997d52d1
557
556
2025-11-09T22:29:45Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Crates and barrels are storage containers, usually made from wood or metal alloys. The simplicity of these props makes them extremely common, as they provide an easy way to add greeble to a scene. However, they can also feel like lazy detailing if overused. They are more common in industrial settings. Although crates are considered a prop or greeble trope, it is possible to create them through level geometry, though sprites are often used for their simplicity. This depends on the game and the level designer's goals.
== Types & Variants ==
* '''Static:''' Purely part of the scenery and cannot be damaged or interacted with. These are often made from geometry, though some games may use models or sprites.
* '''Destructible:''' Has its own health pool and can be destroyed when it reaches zero. Depending on the game, there may be multiple states depicting various levels of damage, or it may simply be destroyed outright when its HP reaches zero.
* '''Lootable:''' Can be opened or destroyed to reveal items or pickups. These are less common in classic games, though many user-made mods include them.
* '''Explosive:''' High-explosive boxes and barrels that blow up when destroyed, dealing damage to nearby actors. These are often colored differently (e.g. red) to call attention to their hazardous nature, but this is not universal.
== Image Examples ==
<gallery>
TropeBarrels.png| Sprites for Wooden barrels - Source: Heretic's E1M1
TropeCrates.jpg| Crates created from level Geometry - Source: Ultimate Doom's E2M2
</gallery>
[[Category:Boom Tropes]]
4dfffcde4875f935381fcd15125ee70d33392c1c
561
557
2025-11-09T22:50:03Z
MasterOfDisillusionment
431405
MasterOfDisillusionment renamed page [[Crates And Barrels]] to [[Crates And Barrels Detail]]: Standardizing the title
wikitext
text/x-wiki
Crates and barrels are storage containers, usually made from wood or metal alloys. The simplicity of these props makes them extremely common, as they provide an easy way to add greeble to a scene. However, they can also feel like lazy detailing if overused. They are more common in industrial settings. Although crates are considered a prop or greeble trope, it is possible to create them through level geometry, though sprites are often used for their simplicity. This depends on the game and the level designer's goals.
== Types & Variants ==
* '''Static:''' Purely part of the scenery and cannot be damaged or interacted with. These are often made from geometry, though some games may use models or sprites.
* '''Destructible:''' Has its own health pool and can be destroyed when it reaches zero. Depending on the game, there may be multiple states depicting various levels of damage, or it may simply be destroyed outright when its HP reaches zero.
* '''Lootable:''' Can be opened or destroyed to reveal items or pickups. These are less common in classic games, though many user-made mods include them.
* '''Explosive:''' High-explosive boxes and barrels that blow up when destroyed, dealing damage to nearby actors. These are often colored differently (e.g. red) to call attention to their hazardous nature, but this is not universal.
== Image Examples ==
<gallery>
TropeBarrels.png| Sprites for Wooden barrels - Source: Heretic's E1M1
TropeCrates.jpg| Crates created from level Geometry - Source: Ultimate Doom's E2M2
</gallery>
[[Category:Boom Tropes]]
4dfffcde4875f935381fcd15125ee70d33392c1c
Crates And Barrels
0
344
562
2025-11-09T22:50:03Z
MasterOfDisillusionment
431405
MasterOfDisillusionment renamed page [[Crates And Barrels]] to [[Crates And Barrels Detail]]: Standardizing the title
wikitext
text/x-wiki
#REDIRECT [[Crates And Barrels Detail]]
e3f1d812254e77b891f9c627b26e45dafb824be9
Template:WeaponInfo Infobox
10
326
563
496
2025-11-09T23:12:35Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
<includeonly>{{#invoke:Infobox|main
|kind=WeaponInfo Infobox
|sep=,
|image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}150px]]}}
|sections=General Info, Behavior, Stats, External Links
|General Info=Author, Mod, Usage Rights
|Behavior=Weapon Type, Ammo Type, Primary Fire, Secondary Fire, Requires Reloading
|Stats=Radius, Height, Slot, Ammo Capacity, Damage, Rate of Fire, Accuracy, Range
|External Links=ModDB, Realm667, Website, Forum Thread
}}</includeonly><noinclude>
{{documentation}}
[[Category:Infobox templates]]
</noinclude>
926b2064de63e8fe121aff57aed7441192a69db2
Game Information
0
315
564
417
2025-11-09T23:25:05Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Relevant Doom engine games are listed on this page along with other game information.
== Games ==
=== Classic ===
The original classics from the 90s.
* [[Doom]]: Doom is a first person shooter action game created by Id Software and published in 1993.
* [[Heretic]]: A fantasy version of Doom.
=== Classic ===
Neo-boomer shooters created using a modified version of the Doom engine (e.g. UZDoom/GZDoom).
* [[Malefact]]: Malefact is a fantasy horror boomer shooter in development by GoreMaxxed Productions. The project is led by hardcore_gamer, with a demo version expected to release in Q1 2026. The game is built on the UZDoom engine.
== Actors & Assets ==
To view information about specific actors in individual games or mods, visit the pages below.
* [[Weapons]]: Weapons usable by the player.
* [[Items]]: Pickups & Power-ups the player can collect.
* [[Enemies]]: Enemies the player faces.
[[Category:Game Information]]
da5ab5efdd3c3939906a90f3b3c3b39c259399bb
Malefact Mapping Tutorials
0
314
565
492
2025-11-11T00:09:50Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This level design guide was created to ease newcomers to Malefact mapping into the process. It was written by the game's lead developer and level designer. If you wish to create your own levels for the game, it’s strongly recommended you give them a glance, even if only for those sections covering functionality that is unique to Malefact.
If you’d like to add your own tutorials or link to those created by others, you can do so on the [[Category:Tutorials And Guides|main tutorial category page]].
== Table of Contents ==
=== Beginner ===
* [[Malefact Tutorial 1|Installing Prerequisites]]
* Sector Creation
* Texturing
* Lighting
* Sector Effects
* Actor Placement
* Linedef Triggers & Interactive Elements
* Ending Your Map
* MAPINFO Definition
=== Advanced ===
* Scrolling Surfaces
* Slopes & Arches
* 3D Sectors & Liquids
* Patrolling Monsters & Hazards
* ACS Scripting
* Hub Maps
* Ambient Sounds
=== Design Theory ===
* Pre-Planning
* Area Modules
* Monster Closets & Traps
* Encounter Design & Pacing
[[Category:Tutorials And Guides]]
9b0830df607ed93e3b15d225dd87452e48789c04
576
565
2025-11-11T14:43:45Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This level design guide was created to ease newcomers to Malefact mapping into the process. It was written by the game's lead developer and level designer. If you wish to create your own levels for the game, it’s strongly recommended you give them a glance, even if only for those sections covering functionality that is unique to Malefact. Note that these tutorials were written for Windows users and assume that you're using the Ultimate Doom Builder level editor.
If you’d like to add your own tutorials or link to those created by others, you can do so on the [[Category:Tutorials And Guides|main tutorial category page]].
== Table of Contents ==
=== Beginner ===
* [[Malefact Tutorial 1|Installing Prerequisites]]
* Sector Creation
* Texturing
* Lighting
* Sector Effects
* Actor Placement
* Linedef Triggers & Interactive Elements
* Ending Your Map
* MAPINFO Definition
=== Advanced ===
* Scrolling Surfaces
* Slopes & Arches
* 3D Sectors & Liquids
* Patrolling Monsters & Hazards
* ACS Scripting
* Hub Maps
* Ambient Sounds
=== Design Theory ===
* Pre-Planning
* Area Modules
* Monster Closets & Traps
* Encounter Design & Pacing
[[Category:Tutorials And Guides]]
545a41ac1e91621dac5eb8fee0ab17f25c430d90
590
576
2025-11-11T22:53:12Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This level design guide was created to ease newcomers to Malefact mapping into the process. It was written by the game's lead developer and level designer. If you wish to create your own levels for the game, it’s strongly recommended you give them a glance, even if only for those sections covering functionality that is unique to Malefact. Note that these tutorials were written for Windows users and assume that you're using the Ultimate Doom Builder level editor.
Note: Although this series is written for Malefact, the techniques covered are equally applicable to Doom and Heretic mapping in most cases.
If you’d like to add your own tutorials or link to those created by others, you can do so on the [[Category:Tutorials And Guides|main tutorial category page]].
== Table of Contents ==
=== Beginner ===
* [[Malefact Tutorial 1|Installing Prerequisites]]
* Sector Creation
* Texturing
* Lighting
* Sector Effects
* Actor Placement
* Linedef Triggers & Interactive Elements
* Ending Your Map
* MAPINFO Definition
=== Advanced ===
* Scrolling Surfaces
* Slopes & Arches
* 3D Sectors & Liquids
* Patrolling Monsters & Hazards
* ACS Scripting
* Hub Maps
* Ambient Sounds
=== Design Theory ===
* Pre-Planning
* Area Modules
* Monster Closets & Traps
* Encounter Design & Pacing
[[Category:Tutorials And Guides]]
e8364107f429abf7e029ed77aa4e6f83b2a1ca65
591
590
2025-11-11T22:54:11Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This level design guide was created to ease newcomers to Malefact mapping into the process. It was written by the game's lead developer and level designer. Although this series is written for Malefact, the techniques covered are equally applicable to Doom and Heretic mapping in most cases. If you wish to create your own levels for the game, it’s strongly recommended you give them a glance, even if only for those sections covering functionality that is unique to Malefact. Note that these tutorials were written for Windows users and assume that you're using the Ultimate Doom Builder level editor.
If you’d like to add your own tutorials or link to those created by others, you can do so on the [[Category:Tutorials And Guides|main tutorial category page]].
== Table of Contents ==
=== Beginner ===
* [[Malefact Tutorial 1|Installing Prerequisites]]
* Sector Creation
* Texturing
* Lighting
* Sector Effects
* Actor Placement
* Linedef Triggers & Interactive Elements
* Ending Your Map
* MAPINFO Definition
=== Advanced ===
* Scrolling Surfaces
* Slopes & Arches
* 3D Sectors & Liquids
* Patrolling Monsters & Hazards
* ACS Scripting
* Hub Maps
* Ambient Sounds
=== Design Theory ===
* Pre-Planning
* Area Modules
* Monster Closets & Traps
* Encounter Design & Pacing
[[Category:Tutorials And Guides]]
0a751b48709199bbe85a0c3b638b2a2137d40401
592
591
2025-11-12T01:01:44Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This level design guide was created to ease newcomers to Malefact mapping into the process. It was written by the game's lead developer and level designer. Although this series is written for Malefact, the techniques covered are equally applicable to Doom and Heretic mapping in most cases. If you wish to create your own levels for the game, it’s strongly recommended you give them a glance, even if only for those sections covering functionality that is unique to Malefact. Note that these tutorials were written for Windows users and assume that you're using the Ultimate Doom Builder level editor.
If you’d like to add your own tutorials or link to those created by others, you can do so on the [[Category:Tutorials And Guides|main tutorial category page]].
== Table of Contents ==
=== Beginner ===
* [[Malefact Tutorial 1|Installing Prerequisites]]
* [[Sector Creation]]
* Texturing
* Lighting
* Sector Effects
* Actor Placement
* Linedef Triggers & Interactive Elements
* Ending Your Map
* MAPINFO Definition
=== Advanced ===
* Scrolling Surfaces
* Slopes & Arches
* 3D Sectors & Liquids
* Patrolling Monsters & Hazards
* ACS Scripting
* Hub Maps
* Ambient Sounds
=== Design Theory ===
* Pre-Planning
* Area Modules
* Monster Closets & Traps
* Encounter Design & Pacing
[[Category:Tutorials And Guides]]
07cbab39aa01964e24fd7a9e95b432a42148ba6b
593
592
2025-11-12T01:09:54Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This level design guide was created to ease newcomers to Malefact mapping into the process. It was written by the game's lead developer and level designer. Although this series is written for Malefact, the techniques covered are equally applicable to Doom and Heretic mapping in most cases. If you wish to create your own levels for the game, it’s strongly recommended you give them a glance, even if only for those sections covering functionality that is unique to Malefact. Note that these tutorials were written for Windows users and assume that you're using the Ultimate Doom Builder level editor.
If you’d like to add your own tutorials or link to those created by others, you can do so on the [[Category:Tutorials And Guides|main tutorial category page]].
== Table of Contents ==
=== Beginner ===
* [[Malefact Tutorial 1|Installing Prerequisites]]
* [[Sector Creation Tutorial]]
* Texturing
* Lighting
* Sector Effects
* Actor Placement
* Linedef Triggers & Interactive Elements
* Ending Your Map
* MAPINFO Definition
=== Advanced ===
* Scrolling Surfaces
* Slopes & Arches
* 3D Sectors & Liquids
* Patrolling Monsters & Hazards
* ACS Scripting
* Hub Maps
* Ambient Sounds
=== Design Theory ===
* Pre-Planning
* Area Modules
* Monster Closets & Traps
* Encounter Design & Pacing
[[Category:Tutorials And Guides]]
224a03832c583bc3196ec1def4f68e702c56f637
595
593
2025-11-12T01:10:49Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This level design guide was created to ease newcomers to Malefact mapping into the process. It was written by the game's lead developer and level designer. Although this series is written for Malefact, the techniques covered are equally applicable to Doom and Heretic mapping in most cases. If you wish to create your own levels for the game, it’s strongly recommended you give them a glance, even if only for those sections covering functionality that is unique to Malefact. Note that these tutorials were written for Windows users and assume that you're using the Ultimate Doom Builder level editor.
If you’d like to add your own tutorials or link to those created by others, you can do so on the [[Category:Tutorials And Guides|main tutorial category page]].
== Table of Contents ==
=== Beginner ===
* [[Installing Prerequisites Tutorial|Installing Prerequisites]]
* [[Sector Creation Tutorial|Sector Creation]]
* Texturing
* Lighting
* Sector Effects
* Actor Placement
* Linedef Triggers & Interactive Elements
* Ending Your Map
* MAPINFO Definition
=== Advanced ===
* Scrolling Surfaces
* Slopes & Arches
* 3D Sectors & Liquids
* Patrolling Monsters & Hazards
* ACS Scripting
* Hub Maps
* Ambient Sounds
=== Design Theory ===
* Pre-Planning
* Area Modules
* Monster Closets & Traps
* Encounter Design & Pacing
[[Category:Tutorials And Guides]]
dce51b46471e39597edde7ed4fa1c0f8868c35ba
Installing Prerequisites Tutorial
0
345
566
2025-11-11T00:11:46Z
MasterOfDisillusionment
431405
Created page with "So you want to create your own customized genocide, eh? You’ve come to the right place. I’m the lead developer and level designer for [Malefact|Malefact: Evil Unchained]], and I will be showing you how to do exactly that. == Installing the Prerequisites == === Installing Ultimate Doom Builder === The first step in your genocide journey is to install the [[https://ultimatedoombuilder.github.io/|Ultimate Doom Builder]] level editor. This is a fairly straightforward p..."
wikitext
text/x-wiki
So you want to create your own customized genocide, eh? You’ve come to the right place. I’m the lead developer and level designer for [Malefact|Malefact: Evil Unchained]], and I will be showing you how to do exactly that.
== Installing the Prerequisites ==
=== Installing Ultimate Doom Builder ===
The first step in your genocide journey is to install the [[https://ultimatedoombuilder.github.io/|Ultimate Doom Builder]] level editor. This is a fairly straightforward process, and I assume you don’t need to be told how to install a desktop app.
=== Installing the Editor Configuration ===
UDM was originally created as a level-editing program for Doom and Heretic and comes preinstalled with configs for those games, but Malefact requires that its config be installed manually. You can download the required files [[FutureLinkToFiles|here]].
Inside the downloaded folder, you will find two files:
* GZDoom_MalefactUDMF.cfg
* Malefact_things.cfg
You must then navigate to where you installed UDM. Usually, the install location will be something like C:\Users\MyUserName\AppData\Local\Programs\Ultimate Doom Builder
If you cannot see the AppData folder, you may have to open File Explorer (e.g. the ‘View’ tab) and check the ‘Hidden items’ box to make it visible.
Inside the Ultimate Doom Builder root folder, you’ll see another folder named ‘Configurations’. Open it. Once inside, place the GZDoom_MalefactUDMF.cfg file there. Inside this folder, you will also see another folder called ‘Includes’. Place the Malefact_things.cfg file inside that folder.
<Image of where these files go>
=== Assigning Game Content ===
Now start Ultimate Doom Builder.
Select ‘Tools’ from the menu bar in the top-left corner, and then ‘Game Configuration’. If you followed the previous steps correctly, Malefact should be listed among the other game configurations. Note that Malefact only supports the UDMF (Universal Doom Mapping Format) format. Once you’ve found Malefact on the list, select it by left-clicking on it. Make sure you’re on the ‘Resources’ tab, and click the ‘Add resource’ button. Now navigate to your Malefact folder and load the Malefact.ipk3 file. It should now appear on the resource list. This tells UDM where all the game assets are when you are making maps using the Malefact game configuration.
<Image of the game configuration interface>
You also need a second file that tells the editor you’re using the UZDoom (formerly known as GZDoom) source port. The process is the same: click the ‘Add resource’ button and add the UZDoom.pk3 file, which is also located in the same folder. Click the ‘Ok’ button, which will apply the settings and close the window automatically.
=== Starting a New Map ===
You should now have everything you need to get started. Select ‘New Map’ from the menu bar and make sure that the Malefact game configuration is selected from the list. Make sure that ‘Script Type’ is set to ZDOOM ACS if it isn’t already. The level name can technically be whatever you want (though I’d strongly advise against using special characters, e.g. !), though the standard practice is to use Doom’s mapslot structure, e.g. MAP01, E1M1, etc. For the sake of this tutorial, just name it MAP01. Leave the two checkboxes empty if they aren’t. You can ignore the ‘Add resource’ button for the moment (this is used for loading mods and custom assets).
<Image of the ‘New Map’ interface>
If everything loaded fine and you didn’t get a million error messages, that means you’re now officially ready to start crafting your own unholy holocaust carnage!
[[Category:Tutorials And Guides]]
6181388cb69ded0b70364766db917b456511a368
567
566
2025-11-11T00:13:06Z
MasterOfDisillusionment
431405
Protected "[[Malefact Tutorial 1]]": Official Malefact Tutorial written by the game's developer. ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite))
wikitext
text/x-wiki
So you want to create your own customized genocide, eh? You’ve come to the right place. I’m the lead developer and level designer for [Malefact|Malefact: Evil Unchained]], and I will be showing you how to do exactly that.
== Installing the Prerequisites ==
=== Installing Ultimate Doom Builder ===
The first step in your genocide journey is to install the [[https://ultimatedoombuilder.github.io/|Ultimate Doom Builder]] level editor. This is a fairly straightforward process, and I assume you don’t need to be told how to install a desktop app.
=== Installing the Editor Configuration ===
UDM was originally created as a level-editing program for Doom and Heretic and comes preinstalled with configs for those games, but Malefact requires that its config be installed manually. You can download the required files [[FutureLinkToFiles|here]].
Inside the downloaded folder, you will find two files:
* GZDoom_MalefactUDMF.cfg
* Malefact_things.cfg
You must then navigate to where you installed UDM. Usually, the install location will be something like C:\Users\MyUserName\AppData\Local\Programs\Ultimate Doom Builder
If you cannot see the AppData folder, you may have to open File Explorer (e.g. the ‘View’ tab) and check the ‘Hidden items’ box to make it visible.
Inside the Ultimate Doom Builder root folder, you’ll see another folder named ‘Configurations’. Open it. Once inside, place the GZDoom_MalefactUDMF.cfg file there. Inside this folder, you will also see another folder called ‘Includes’. Place the Malefact_things.cfg file inside that folder.
<Image of where these files go>
=== Assigning Game Content ===
Now start Ultimate Doom Builder.
Select ‘Tools’ from the menu bar in the top-left corner, and then ‘Game Configuration’. If you followed the previous steps correctly, Malefact should be listed among the other game configurations. Note that Malefact only supports the UDMF (Universal Doom Mapping Format) format. Once you’ve found Malefact on the list, select it by left-clicking on it. Make sure you’re on the ‘Resources’ tab, and click the ‘Add resource’ button. Now navigate to your Malefact folder and load the Malefact.ipk3 file. It should now appear on the resource list. This tells UDM where all the game assets are when you are making maps using the Malefact game configuration.
<Image of the game configuration interface>
You also need a second file that tells the editor you’re using the UZDoom (formerly known as GZDoom) source port. The process is the same: click the ‘Add resource’ button and add the UZDoom.pk3 file, which is also located in the same folder. Click the ‘Ok’ button, which will apply the settings and close the window automatically.
=== Starting a New Map ===
You should now have everything you need to get started. Select ‘New Map’ from the menu bar and make sure that the Malefact game configuration is selected from the list. Make sure that ‘Script Type’ is set to ZDOOM ACS if it isn’t already. The level name can technically be whatever you want (though I’d strongly advise against using special characters, e.g. !), though the standard practice is to use Doom’s mapslot structure, e.g. MAP01, E1M1, etc. For the sake of this tutorial, just name it MAP01. Leave the two checkboxes empty if they aren’t. You can ignore the ‘Add resource’ button for the moment (this is used for loading mods and custom assets).
<Image of the ‘New Map’ interface>
If everything loaded fine and you didn’t get a million error messages, that means you’re now officially ready to start crafting your own unholy holocaust carnage!
[[Category:Tutorials And Guides]]
6181388cb69ded0b70364766db917b456511a368
569
567
2025-11-11T00:17:25Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
So you want to create your own customized genocide, eh? You’ve come to the right place. I’m the lead developer and level designer for [[Malefact|Malefact: Evil Unchained]], and I will be showing you how to do exactly that.
== Installing the Prerequisites ==
=== Installing Ultimate Doom Builder ===
The first step in your genocide journey is to install the [[https://ultimatedoombuilder.github.io/|Ultimate Doom Builder]] level editor. This is a fairly straightforward process, and I assume you don’t need to be told how to install a desktop app.
=== Installing the Editor Configuration ===
UDM was originally created as a level-editing program for Doom and Heretic and comes preinstalled with configs for those games, but Malefact requires that its config be installed manually. You can download the required files [[FutureLinkToFiles|here]].
Inside the downloaded folder, you will find two files:
* GZDoom_MalefactUDMF.cfg
* Malefact_things.cfg
You must then navigate to where you installed UDM. Usually, the install location will be something like C:\Users\MyUserName\AppData\Local\Programs\Ultimate Doom Builder
If you cannot see the AppData folder, you may have to open File Explorer (e.g. the ‘View’ tab) and check the ‘Hidden items’ box to make it visible.
Inside the Ultimate Doom Builder root folder, you’ll see another folder named ‘Configurations’. Open it. Once inside, place the GZDoom_MalefactUDMF.cfg file there. Inside this folder, you will also see another folder called ‘Includes’. Place the Malefact_things.cfg file inside that folder.
<Image of where these files go>
=== Assigning Game Content ===
Now start Ultimate Doom Builder.
Select ‘Tools’ from the menu bar in the top-left corner, and then ‘Game Configuration’. If you followed the previous steps correctly, Malefact should be listed among the other game configurations. Note that Malefact only supports the UDMF (Universal Doom Mapping Format) format. Once you’ve found Malefact on the list, select it by left-clicking on it. Make sure you’re on the ‘Resources’ tab, and click the ‘Add resource’ button. Now navigate to your Malefact folder and load the Malefact.ipk3 file. It should now appear on the resource list. This tells UDM where all the game assets are when you are making maps using the Malefact game configuration.
<Image of the game configuration interface>
You also need a second file that tells the editor you’re using the UZDoom (formerly known as GZDoom) source port. The process is the same: click the ‘Add resource’ button and add the UZDoom.pk3 file, which is also located in the same folder. Click the ‘Ok’ button, which will apply the settings and close the window automatically.
=== Starting a New Map ===
You should now have everything you need to get started. Select ‘New Map’ from the menu bar and make sure that the Malefact game configuration is selected from the list. Make sure that ‘Script Type’ is set to ZDOOM ACS if it isn’t already. The level name can technically be whatever you want (though I’d strongly advise against using special characters, e.g. !), though the standard practice is to use Doom’s mapslot structure, e.g. MAP01, E1M1, etc. For the sake of this tutorial, just name it MAP01. Leave the two checkboxes empty if they aren’t. You can ignore the ‘Add resource’ button for the moment (this is used for loading mods and custom assets).
<Image of the ‘New Map’ interface>
If everything loaded fine and you didn’t get a million error messages, that means you’re now officially ready to start crafting your own unholy holocaust carnage!
[[Category:Tutorials And Guides]]
dfacc46760434b1bd5b1a7c5bccad8a0f118ed9b
571
569
2025-11-11T00:52:08Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This series of tutorials was written for [[Malefact|Malefact: Evil Unchained]] by the lead developer and level designer.
== Installing the Prerequisites ==
=== Installing Ultimate Doom Builder ===
The first step in your genocide journey is to install the [[https://ultimatedoombuilder.github.io/|Ultimate Doom Builder]] level editor. This is a fairly straightforward process, and I assume you don’t need to be told how to install a desktop app.
=== Installing the Editor Configuration ===
UDM was originally created as a level-editing program for Doom and Heretic and comes preinstalled with configs for those games, but Malefact requires that its config be installed manually. You can download the required files [[FutureLinkToFiles|here]].
Inside the downloaded folder, you will find two files:
* GZDoom_MalefactUDMF.cfg
* Malefact_things.cfg
You must then navigate to where you installed UDM. Usually, the install location will be something like C:\Users\MyUserName\AppData\Local\Programs\Ultimate Doom Builder
If you cannot see the AppData folder, you may have to open File Explorer (e.g. the ‘View’ tab) and check the ‘Hidden items’ box to make it visible.
Inside the Ultimate Doom Builder root folder, you’ll see another folder named ‘Configurations’. Open it. Once inside, place the GZDoom_MalefactUDMF.cfg file there. Inside this folder, you will also see another folder called ‘Includes’. Place the Malefact_things.cfg file inside that folder.
<Image of where these files go>
=== Assigning Game Content ===
Now start Ultimate Doom Builder.
Select ‘Tools’ from the menu bar in the top-left corner, and then ‘Game Configuration’. If you followed the previous steps correctly, Malefact should be listed among the other game configurations. Note that Malefact only supports the UDMF (Universal Doom Mapping Format) format. Once you’ve found Malefact on the list, select it by left-clicking on it. Make sure you’re on the ‘Resources’ tab, and click the ‘Add resource’ button. Now navigate to your Malefact folder and load the Malefact.ipk3 file. It should now appear on the resource list. This tells UDM where all the game assets are when you are making maps using the Malefact game configuration.
<Image of the game configuration interface>
You also need a second file that tells the editor you’re using the UZDoom (formerly known as GZDoom) source port. The process is the same: click the ‘Add resource’ button and add the UZDoom.pk3 file, which is also located in the same folder. Click the ‘Ok’ button, which will apply the settings and close the window automatically.
=== Starting a New Map ===
You should now have everything you need to get started. Select ‘New Map’ from the menu bar and make sure that the Malefact game configuration is selected from the list. Make sure that ‘Script Type’ is set to ZDOOM ACS if it isn’t already. The level name can technically be whatever you want (though I’d strongly advise against using special characters, e.g. !), though the standard practice is to use Doom’s mapslot structure, e.g. MAP01, E1M1, etc. For the sake of this tutorial, just name it MAP01. Leave the two checkboxes empty if they aren’t. You can ignore the ‘Add resource’ button for the moment (this is used for loading mods and custom assets).
<Image of the ‘New Map’ interface>
If everything loaded fine and you didn’t get error messages, that means you’re now ready to started.
[[Category:Tutorials And Guides]]
f04724b79b2bcbbf0b69483df6189106299455e4
572
571
2025-11-11T14:09:41Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This series of tutorials was written for [[Malefact|Malefact: Evil Unchained]] by the lead developer and level designer.
== Installing the Prerequisites ==
=== Installing Ultimate Doom Builder ===
The first step in your genocide journey is to install the [[https://ultimatedoombuilder.github.io/|Ultimate Doom Builder]] level editor. This is a fairly straightforward process; if you're even interested in game modding, I assume you don’t need to be told how to install a desktop app.
=== Installing the Editor Configuration ===
UDM was originally created as a level-editing program for Doom and Heretic and comes preinstalled with configs for those games, but Malefact requires that its config be installed manually. You can download the required files [[FutureLinkToFiles|here]].
Inside the downloaded folder, you will find two files:
* GZDoom_MalefactUDMF.cfg
* Malefact_things.cfg
You must then navigate to where you installed UDM. Usually, the install location will be something like C:\Users\MyUserName\AppData\Local\Programs\Ultimate Doom Builder
If you cannot see the AppData folder, you may have to open File Explorer (e.g. the ‘View’ tab) and check the ‘Hidden items’ box to make it visible.
Inside the Ultimate Doom Builder root folder, you’ll see another folder named ‘Configurations’. Open it. Once inside, place the GZDoom_MalefactUDMF.cfg file there. Inside this folder, you will also see another folder called ‘Includes’. Place the Malefact_things.cfg file inside that folder.
<Image of where these files go>
=== Assigning Game Content ===
Now start Ultimate Doom Builder.
Select ‘Tools’ from the menu bar in the top-left corner, and then ‘Game Configuration’. If you followed the previous steps correctly, Malefact should be listed among the other game configurations. Note that Malefact only supports the UDMF (Universal Doom Mapping Format) format. Once you’ve found Malefact on the list, select it by left-clicking on it. Make sure you’re on the ‘Resources’ tab, and click the ‘Add resource’ button. Now navigate to your Malefact folder and load the Malefact.ipk3 file. It should now appear on the resource list. This tells UDM where all the game assets are when you are making maps using the Malefact game configuration.
<Image of the game configuration interface>
You also need a second file that tells the editor you’re using the UZDoom (formerly known as GZDoom) source port. The process is the same: click the ‘Add resource’ button and add the UZDoom.pk3 file, which is also located in the same folder. Click the ‘Ok’ button, which will apply the settings and close the window automatically.
=== Starting a New Map ===
You should now have everything you need to get started. Select ‘New Map’ from the menu bar and make sure that the Malefact game configuration is selected from the list. Make sure that ‘Script Type’ is set to ZDOOM ACS if it isn’t already. The level name can technically be whatever you want (though I’d strongly advise against using special characters, e.g. !), though the standard practice is to use Doom’s mapslot structure, e.g. MAP01, E1M1, etc. For the sake of this tutorial, just name it MAP01. Leave the two checkboxes empty if they aren’t. You can ignore the ‘Add resource’ button for the moment (this is used for loading mods and custom assets).
<Image of the ‘New Map’ interface>
If everything loaded fine and you didn’t get error messages, that means you’re now ready to started.
[[Category:Tutorials And Guides]]
f382021a54d0a66b8f685973ee741cf7408332a5
573
572
2025-11-11T14:10:11Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This series of tutorials was written for [[Malefact|Malefact: Evil Unchained]] by the lead developer and level designer.
== Installing the Prerequisites ==
=== Installing Ultimate Doom Builder ===
The first step in your genocide journey is to install the [[https://ultimatedoombuilder.github.io/|Ultimate Doom Builder]] level editor. This is a fairly straightforward process; if you're even interested in game modding, I assume you don’t need to be told how to install a desktop app.
=== Installing the Editor Configuration ===
UDM was originally created as a level-editing program for Doom and Heretic and comes preinstalled with configs for those games, but Malefact requires that its config be installed manually. You can download the required files [[FutureLinkToFiles|here]].
Inside the downloaded folder, you will find two files:
* GZDoom_MalefactUDMF.cfg
* Malefact_things.cfg
You must then navigate to where you installed UDM. Usually, the install location will be something like C:\Users\MyUserName\AppData\Local\Programs\Ultimate Doom Builder
If you cannot see the AppData folder, you may have to open File Explorer (e.g. the ‘View’ tab) and check the ‘Hidden items’ box to make it visible.
Inside the Ultimate Doom Builder root folder, you’ll see another folder named ‘Configurations’. Open it. Once inside, place the GZDoom_MalefactUDMF.cfg file there. Inside this folder, you will also see another folder called ‘Includes’. Place the Malefact_things.cfg file inside that folder.
<Image of where these files go>
=== Assigning Game Content ===
Now start Ultimate Doom Builder.
Select ‘Tools’ from the menu bar in the top-left corner, and then ‘Game Configuration’. If you followed the previous steps correctly, Malefact should be listed among the other game configurations. Note that Malefact only supports the UDMF (Universal Doom Mapping Format) format. Once you’ve found Malefact on the list, select it by left-clicking on it. Make sure you’re on the ‘Resources’ tab, and click the ‘Add resource’ button. Now navigate to your Malefact folder and load the Malefact.ipk3 file. It should now appear on the resource list. This tells UDM where all the game assets are when you are making maps using the Malefact game configuration.
<Image of the game configuration interface>
You also need a second file that tells the editor you’re using the UZDoom (formerly known as GZDoom) source port. The process is the same: click the ‘Add resource’ button and add the UZDoom.pk3 file, which is also located in the same folder. Click the ‘Ok’ button, which will apply the settings and close the window automatically.
=== Starting a New Map ===
You should now have everything you need to get started. Select ‘New Map’ from the menu bar and make sure that the Malefact game configuration is selected from the list. Make sure that ‘Script Type’ is set to ZDOOM ACS if it isn’t already. The level name can technically be whatever you want (though I’d strongly advise against using special characters, e.g. !), though the standard practice is to use Doom’s mapslot structure, e.g. MAP01, E1M1, etc. For the sake of this tutorial, just name it MAP01. Leave the two checkboxes empty if they aren’t. You can ignore the ‘Add resource’ button for the moment (this is used for loading mods and custom assets).
<Image of the ‘New Map’ interface>
If everything loaded fine and you didn’t get error messages, that means you’re now ready to start.
[[Category:Tutorials And Guides]]
de8fc43ebf148fa21ac095f4ca8e5a437a508552
575
573
2025-11-11T14:37:24Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This series of tutorials was written for [[Malefact|Malefact: Evil Unchained]] by the lead developer and level designer.
== Installing the Prerequisites ==
=== Installing Ultimate Doom Builder ===
The first step in your genocide journey is to install the [https://ultimatedoombuilder.github.io/ Ultimate Doom Builder] level editor. This is a fairly straightforward process; if you're even interested in game modding, I assume you don’t need to be told how to install a desktop app.
=== Installing the Editor Configuration ===
UDM was originally created as a level-editing program for Doom and Heretic and comes preinstalled with configs for those games, but Malefact requires that its config be installed manually. You can download the required files [[FutureLinkToFiles|here]].
Inside the downloaded folder, you will find two files:
* GZDoom_MalefactUDMF.cfg
* Malefact_things.cfg
You must then navigate to where you installed UDM. Usually, the install location will be something like C:\Users\MyUserName\AppData\Local\Programs\Ultimate Doom Builder
If you cannot see the AppData folder, you may have to open File Explorer (e.g. the ‘View’ tab) and check the ‘Hidden items’ box to make it visible.
Inside the Ultimate Doom Builder root folder, you’ll see another folder named ‘Configurations’. Open it. Once inside, place the GZDoom_MalefactUDMF.cfg file there. Inside this folder, you will also see another folder called ‘Includes’. Place the Malefact_things.cfg file inside that folder.
<Image of where these files go>
=== Assigning Game Content ===
Now start Ultimate Doom Builder.
Select ‘Tools’ from the menu bar in the top-left corner, and then ‘Game Configuration’. If you followed the previous steps correctly, Malefact should be listed among the other game configurations. Note that Malefact only supports the UDMF (Universal Doom Mapping Format) format. Once you’ve found Malefact on the list, select it by left-clicking on it. Make sure you’re on the ‘Resources’ tab, and click the ‘Add resource’ button. Now navigate to your Malefact folder and load the Malefact.ipk3 file. It should now appear on the resource list. This tells UDM where all the game assets are when you are making maps using the Malefact game configuration.
<Image of the game configuration interface>
You also need a second file that tells the editor you’re using the UZDoom (formerly known as GZDoom) source port. The process is the same: click the ‘Add resource’ button and add the UZDoom.pk3 file, which is also located in the same folder. Click the ‘Ok’ button, which will apply the settings and close the window automatically.
=== Starting a New Map ===
You should now have everything you need to get started. Select ‘New Map’ from the menu bar and make sure that the Malefact game configuration is selected from the list. Make sure that ‘Script Type’ is set to ZDOOM ACS if it isn’t already. The level name can technically be whatever you want (though I’d strongly advise against using special characters, e.g. !), though the standard practice is to use Doom’s mapslot structure, e.g. MAP01, E1M1, etc. For the sake of this tutorial, just name it MAP01. Leave the two checkboxes empty if they aren’t. You can ignore the ‘Add resource’ button for the moment (this is used for loading mods and custom assets).
<Image of the ‘New Map’ interface>
If everything loaded fine and you didn’t get error messages, that means you’re now ready to start.
[[Category:Tutorials And Guides]]
675d2f88fc5002dabf0af428758c90d53725df90
579
575
2025-11-11T15:54:44Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This series of tutorials was written for [[Malefact|Malefact: Evil Unchained]] by the lead developer and level designer.
== Installing the Prerequisites ==
=== Installing Ultimate Doom Builder ===
The first step in your genocide journey is to install the [https://ultimatedoombuilder.github.io/ Ultimate Doom Builder] level editor. This is a fairly straightforward process; if you're even interested in game modding, I assume you don’t need to be told how to install a desktop app.
=== Installing the Editor Configuration ===
UDM was originally created as a level-editing program for Doom and Heretic and comes preinstalled with configs for those games, but Malefact requires that its config be installed manually. You can download the required files [[FutureLinkToFiles|here]].
Inside the downloaded folder, you will find two files:
* GZDoom_MalefactUDMF.cfg
* Malefact_things.cfg
You must then navigate to where you installed UDM. Usually, the install location will be something like C:\Users\MyUserName\AppData\Local\Programs\Ultimate Doom Builder
If you cannot see the AppData folder, you may have to open File Explorer (e.g. the ‘View’ tab) and check the ‘Hidden items’ box to make it visible.
Inside the Ultimate Doom Builder root folder, you’ll see another folder named ‘Configurations’. Open it. Once inside, place the GZDoom_MalefactUDMF.cfg file there. Inside this folder, you will also see another folder called ‘Includes’. Place the Malefact_things.cfg file inside that folder.
[[File:UDMFolder.png|thumb|none|Your Ultimate Doom Builder root folder should look like this.]]
=== Assigning Game Content ===
Now start Ultimate Doom Builder.
Select ‘Tools’ from the menu bar in the top-left corner, and then ‘Game Configuration’. If you followed the previous steps correctly, Malefact should be listed among the other game configurations. Note that Malefact only supports the UDMF (Universal Doom Mapping Format) format. Once you’ve found Malefact on the list, select it by left-clicking on it. Make sure you’re on the ‘Resources’ tab, and click the ‘Add resource’ button. Now navigate to your Malefact folder and load the Malefact.ipk3 file. It should now appear on the resource list. This tells UDM where all the game assets are when you are making maps using the Malefact game configuration.
<Image of the game configuration interface>
You also need a second file that tells the editor you’re using the UZDoom (formerly known as GZDoom) source port. The process is the same: click the ‘Add resource’ button and add the UZDoom.pk3 file, which is also located in the same folder. Click the ‘Ok’ button, which will apply the settings and close the window automatically.
=== Starting a New Map ===
You should now have everything you need to get started. Select ‘New Map’ from the menu bar and make sure that the Malefact game configuration is selected from the list. Make sure that ‘Script Type’ is set to ZDOOM ACS if it isn’t already. The level name can technically be whatever you want (though I’d strongly advise against using special characters, e.g. !), though the standard practice is to use Doom’s mapslot structure, e.g. MAP01, E1M1, etc. For the sake of this tutorial, just name it MAP01. Leave the two checkboxes empty if they aren’t. You can ignore the ‘Add resource’ button for the moment (this is used for loading mods and custom assets).
<Image of the ‘New Map’ interface>
If everything loaded fine and you didn’t get error messages, that means you’re now ready to start.
[[Category:Tutorials And Guides]]
e33fa97c6a7e61a587f0bf447f6f361977c18c51
585
579
2025-11-11T16:10:04Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This series of tutorials was written for [[Malefact|Malefact: Evil Unchained]] by the lead developer and level designer.
== Installing the Prerequisites ==
=== Installing Ultimate Doom Builder ===
The first step in your genocide journey is to install the [https://ultimatedoombuilder.github.io/ Ultimate Doom Builder] level editor. This is a fairly straightforward process; if you're even interested in game modding, I assume you don’t need to be told how to install a desktop app.
=== Installing the Editor Configuration ===
UDM was originally created as a level-editing program for Doom and Heretic and comes preinstalled with configs for those games, but Malefact requires that its config be installed manually. You can download the required files [[FutureLinkToFiles|here]].
Inside the downloaded folder, you will find two files:
* GZDoom_MalefactUDMF.cfg
* Malefact_things.cfg
You must then navigate to where you installed UDM. Usually, the install location will be something like C:\Users\MyUserName\AppData\Local\Programs\Ultimate Doom Builder
If you cannot see the AppData folder, you may have to open File Explorer (e.g. the ‘View’ tab) and check the ‘Hidden items’ box to make it visible.
Inside the Ultimate Doom Builder root folder, you’ll see another folder named ‘Configurations’. Open it. Once inside, place the GZDoom_MalefactUDMF.cfg file there. Inside this folder, you will also see another folder called ‘Includes’. Place the Malefact_things.cfg file inside that folder.
[[File:UDMFolder.png|thumb|none|Your Ultimate Doom Builder root folder should look like this.]]
=== Assigning Game Content ===
Now start Ultimate Doom Builder.
Select ‘Tools’ from the menu bar in the top-left corner, and then ‘Game Configuration’. If you followed the previous steps correctly, Malefact should be listed among the other game configurations. Note that Malefact only supports the UDMF (Universal Doom Mapping Format) format. Once you’ve found Malefact on the list, select it by left-clicking on it. Make sure you’re on the ‘Resources’ tab, and click the ‘Add resource’ button. Now navigate to your Malefact folder and load the Malefact.ipk3 file. It should now appear on the resource list. This tells UDM where all the game assets are when you are making maps using the Malefact game configuration.
[[File:Tutorial1 2.png|thumb|none|The Malefact config should now be listed among the others. ]]
You also need a second file that tells the editor you’re using the UZDoom (formerly known as GZDoom) source port. The process is the same: click the ‘Add resource’ button and add the UZDoom.pk3 file, which is also located in the same folder. Click the ‘Ok’ button, which will apply the settings and close the window automatically.
=== Starting a New Map ===
You should now have everything you need to get started. Select ‘New Map’ from the menu bar and make sure that the Malefact game configuration is selected from the list. Make sure that ‘Script Type’ is set to ZDOOM ACS if it isn’t already. The level name can technically be whatever you want (though I’d strongly advise against using special characters, e.g. !), though the standard practice is to use Doom’s mapslot structure, e.g. MAP01, E1M1, etc. For the sake of this tutorial, just name it MAP01. Leave the two checkboxes empty if they aren’t. You can ignore the ‘Add resource’ button for the moment (this is used for loading mods and custom assets).
[[File:Tutorial1 3.png|thumb|none|The Map Options Menu. Your Malefact and UZDoom pk3 files should be listed automatically if you completed the earlier step.]]
If everything loaded fine and you didn’t get error messages, that means you’re now ready to start.
[[Category:Tutorials And Guides]]
0a9cf461f1db4109e08c5b15ded5dad721fa4569
586
585
2025-11-11T16:10:47Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This series of tutorials was written for [[Malefact|Malefact: Evil Unchained]] by the lead developer and level designer.
== Installing the Prerequisites ==
=== Installing Ultimate Doom Builder ===
The first step in your genocide journey is to install the [https://ultimatedoombuilder.github.io/ Ultimate Doom Builder] level editor.
=== Installing the Editor Configuration ===
UDM was originally created as a level-editing program for Doom and Heretic and comes preinstalled with configs for those games, but Malefact requires that its config be installed manually. You can download the required files [[FutureLinkToFiles|here]].
Inside the downloaded folder, you will find two files:
* GZDoom_MalefactUDMF.cfg
* Malefact_things.cfg
You must then navigate to where you installed UDM. Usually, the install location will be something like C:\Users\MyUserName\AppData\Local\Programs\Ultimate Doom Builder
If you cannot see the AppData folder, you may have to open File Explorer (e.g. the ‘View’ tab) and check the ‘Hidden items’ box to make it visible.
Inside the Ultimate Doom Builder root folder, you’ll see another folder named ‘Configurations’. Open it. Once inside, place the GZDoom_MalefactUDMF.cfg file there. Inside this folder, you will also see another folder called ‘Includes’. Place the Malefact_things.cfg file inside that folder.
[[File:UDMFolder.png|thumb|none|Your Ultimate Doom Builder root folder should look like this.]]
=== Assigning Game Content ===
Now start Ultimate Doom Builder.
Select ‘Tools’ from the menu bar in the top-left corner, and then ‘Game Configuration’. If you followed the previous steps correctly, Malefact should be listed among the other game configurations. Note that Malefact only supports the UDMF (Universal Doom Mapping Format) format. Once you’ve found Malefact on the list, select it by left-clicking on it. Make sure you’re on the ‘Resources’ tab, and click the ‘Add resource’ button. Now navigate to your Malefact folder and load the Malefact.ipk3 file. It should now appear on the resource list. This tells UDM where all the game assets are when you are making maps using the Malefact game configuration.
[[File:Tutorial1 2.png|thumb|none|The Malefact config should now be listed among the others. ]]
You also need a second file that tells the editor you’re using the UZDoom (formerly known as GZDoom) source port. The process is the same: click the ‘Add resource’ button and add the UZDoom.pk3 file, which is also located in the same folder. Click the ‘Ok’ button, which will apply the settings and close the window automatically.
=== Starting a New Map ===
You should now have everything you need to get started. Select ‘New Map’ from the menu bar and make sure that the Malefact game configuration is selected from the list. Make sure that ‘Script Type’ is set to ZDOOM ACS if it isn’t already. The level name can technically be whatever you want (though I’d strongly advise against using special characters, e.g. !), though the standard practice is to use Doom’s mapslot structure, e.g. MAP01, E1M1, etc. For the sake of this tutorial, just name it MAP01. Leave the two checkboxes empty if they aren’t. You can ignore the ‘Add resource’ button for the moment (this is used for loading mods and custom assets).
[[File:Tutorial1 3.png|thumb|none|The Map Options Menu. Your Malefact and UZDoom pk3 files should be listed automatically if you completed the earlier step.]]
If everything loaded fine and you didn’t get error messages, that means you’re now ready to start.
[[Category:Tutorials And Guides]]
7941644c9761ab54fcc47749e701fe00622a7b44
587
586
2025-11-11T16:16:16Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This series of tutorials was written for [[Malefact|Malefact: Evil Unchained]] by the lead developer and level designer.
== Installing the Prerequisites ==
=== Installing Ultimate Doom Builder ===
The first step in your genocide journey is to install the [https://ultimatedoombuilder.github.io/ Ultimate Doom Builder] level editor.
=== Installing the Editor Configuration ===
UDM was originally created as a level-editing program for Doom and Heretic and comes preinstalled with configs for those games, but Malefact requires that its config be installed manually. You can download the required files [[FutureLinkToFiles|here]].
Inside the downloaded folder, you will find two files:
* GZDoom_MalefactUDMF.cfg
* Malefact_things.cfg
You must then navigate to where you installed UDM. Usually, the install location will be something like C:\Users\MyUserName\AppData\Local\Programs\Ultimate Doom Builder
If you cannot see the AppData folder, you may have to open File Explorer (e.g. the ‘View’ tab) and check the ‘Hidden items’ box to make it visible.
Inside the Ultimate Doom Builder root folder, you’ll see another folder named ‘Configurations’. Open it. Once inside, place the GZDoom_MalefactUDMF.cfg file there. Inside this folder, you will also see another folder called ‘Includes’. Place the Malefact_things.cfg file inside that folder.
[[File:UDMFolder.png|thumb|none|Your Ultimate Doom Builder root folder should look like this.]]
=== Assigning Game Content ===
Now start Ultimate Doom Builder.
Select ‘Tools’ from the menu bar in the top-left corner, and then ‘Game Configuration’. If you followed the previous steps correctly, Malefact should be listed among the other game configurations. Note that Malefact only supports the UDMF (Universal Doom Mapping Format) format. Once you’ve found Malefact on the list, select it by left-clicking on it. Make sure you’re on the ‘Resources’ tab, and click the ‘Add resource’ button. Now navigate to your Malefact folder and load the Malefact.ipk3 file. It should now appear on the resource list. This tells UDM where all the game assets are when you are making maps using the Malefact game configuration.
[[File:Tutorial1 2.png|thumb|none|The Malefact config should now be listed among the others. ]]
You also need a second file that tells the editor you’re using the UZDoom (formerly known as GZDoom) source port. The process is the same: click the ‘Add resource’ button and add the UZDoom.pk3 file, which is also located in the same folder. Click the ‘Ok’ button, which will apply the settings and close the window automatically.
=== Starting a New Map ===
You should now have everything you need to get started. Select ‘New Map’ from the menu bar and make sure that the Malefact game configuration is selected from the list. Make sure that ‘Script Type’ is set to ZDOOM ACS if it isn’t already. The level name can technically be whatever you want (though I’d strongly advise against using special characters, e.g. !), though the standard practice is to use Doom’s mapslot structure, e.g. MAP01, E1M1, etc. For the sake of this tutorial, just name it MAP01. Leave the two checkboxes empty if they aren’t. You can ignore the ‘Add resource’ button for the moment (this is used for loading mods and custom assets). Once you're happy with the settings, click the OK button.
[[File:Tutorial1 3.png|thumb|none|The Map Options Menu. Your Malefact and UZDoom pk3 files should be listed automatically if you completed the earlier step.]]
If everything loaded fine and you didn’t get error messages, that means you’re now ready to start.
[[Sector Creation|Next Tutorial: Sector Creation]]
[[Malefact Mapping Tutorials|Tutorial Index]]
[[Category:Tutorials And Guides]]
2246888d8da09663ccb64d06f59c36505f99cb5c
588
587
2025-11-11T16:16:27Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This series of tutorials was written for [[Malefact|Malefact: Evil Unchained]] by the lead developer and level designer.
== Installing the Prerequisites ==
=== Installing Ultimate Doom Builder ===
The first step in your genocide journey is to install the [https://ultimatedoombuilder.github.io/ Ultimate Doom Builder] level editor.
=== Installing the Editor Configuration ===
UDM was originally created as a level-editing program for Doom and Heretic and comes preinstalled with configs for those games, but Malefact requires that its config be installed manually. You can download the required files [[FutureLinkToFiles|here]].
Inside the downloaded folder, you will find two files:
* GZDoom_MalefactUDMF.cfg
* Malefact_things.cfg
You must then navigate to where you installed UDM. Usually, the install location will be something like C:\Users\MyUserName\AppData\Local\Programs\Ultimate Doom Builder
If you cannot see the AppData folder, you may have to open File Explorer (e.g. the ‘View’ tab) and check the ‘Hidden items’ box to make it visible.
Inside the Ultimate Doom Builder root folder, you’ll see another folder named ‘Configurations’. Open it. Once inside, place the GZDoom_MalefactUDMF.cfg file there. Inside this folder, you will also see another folder called ‘Includes’. Place the Malefact_things.cfg file inside that folder.
[[File:UDMFolder.png|thumb|none|Your Ultimate Doom Builder root folder should look like this.]]
=== Assigning Game Content ===
Now start Ultimate Doom Builder.
Select ‘Tools’ from the menu bar in the top-left corner, and then ‘Game Configuration’. If you followed the previous steps correctly, Malefact should be listed among the other game configurations. Note that Malefact only supports the UDMF (Universal Doom Mapping Format) format. Once you’ve found Malefact on the list, select it by left-clicking on it. Make sure you’re on the ‘Resources’ tab, and click the ‘Add resource’ button. Now navigate to your Malefact folder and load the Malefact.ipk3 file. It should now appear on the resource list. This tells UDM where all the game assets are when you are making maps using the Malefact game configuration.
[[File:Tutorial1 2.png|thumb|none|The Malefact config should now be listed among the others. ]]
You also need a second file that tells the editor you’re using the UZDoom (formerly known as GZDoom) source port. The process is the same: click the ‘Add resource’ button and add the UZDoom.pk3 file, which is also located in the same folder. Click the ‘Ok’ button, which will apply the settings and close the window automatically.
=== Starting a New Map ===
You should now have everything you need to get started. Select ‘New Map’ from the menu bar and make sure that the Malefact game configuration is selected from the list. Make sure that ‘Script Type’ is set to ZDOOM ACS if it isn’t already. The level name can technically be whatever you want (though I’d strongly advise against using special characters, e.g. !), though the standard practice is to use Doom’s mapslot structure, e.g. MAP01, E1M1, etc. For the sake of this tutorial, just name it MAP01. Leave the two checkboxes empty if they aren’t. You can ignore the ‘Add resource’ button for the moment (this is used for loading mods and custom assets). Once you're happy with the settings, click the OK button.
[[File:Tutorial1 3.png|thumb|none|The Map Options Menu. Your Malefact and UZDoom pk3 files should be listed automatically if you completed the earlier step.]]
If everything loaded fine and you didn’t get error messages, that means you’re now ready to start.
[[Sector Creation|Next Tutorial: Sector Creation]]
[[Malefact Mapping Tutorials|Tutorial Index]]
[[Category:Tutorials And Guides]]
d7c25f057a33789c9aa2af2dd8e27aca23cc507a
589
588
2025-11-11T16:19:35Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This series of tutorials was written for [[Malefact|Malefact: Evil Unchained]] by the lead developer and level designer.
== Installing the Prerequisites ==
=== Installing Ultimate Doom Builder ===
The first step in your genocide journey is to install the [https://ultimatedoombuilder.github.io/ Ultimate Doom Builder] level editor.
=== Installing the Editor Configuration ===
UDM was originally created as a level-editing program for Doom and Heretic and comes preinstalled with configs for those games, but Malefact requires that its config be installed manually. You can download the required files [[FutureLinkToFiles|here]].
Inside the downloaded folder, you will find two files:
* GZDoom_MalefactUDMF.cfg
* Malefact_things.cfg
You must then navigate to where you installed UDM. Usually, the install location will be something like C:\Users\MyUserName\AppData\Local\Programs\Ultimate Doom Builder
If you cannot see the AppData folder, you may have to open File Explorer (e.g. the ‘View’ tab) and check the ‘Hidden items’ box to make it visible.
Inside the Ultimate Doom Builder root folder, you’ll see another folder named ‘Configurations’. Open it. Once inside, place the GZDoom_MalefactUDMF.cfg file there. Inside this folder, you will also see another folder called ‘Includes’. Place the Malefact_things.cfg file inside that folder.
[[File:UDMFolder.png|thumb|none|Your Ultimate Doom Builder root folder should look like this.]]
=== Assigning Game Content ===
Now start Ultimate Doom Builder.
Select ‘Tools’ from the menu bar in the top-left corner, and then ‘Game Configuration’. If you followed the previous steps correctly, Malefact should be listed among the other game configurations. Note that Malefact only supports the UDMF (Universal Doom Mapping Format) format. Once you’ve found Malefact on the list, select it by left-clicking on it. Make sure you’re on the ‘Resources’ tab, and click the ‘Add resource’ button. Now navigate to your Malefact folder and load the Malefact.ipk3 file. It should now appear on the resource list. This tells UDM where all the game assets are when you are making maps using the Malefact game configuration.
[[File:Tutorial1 2.png|thumb|none|The Malefact config should now be listed among the others. ]]
You also need a second file that tells the editor you’re using the UZDoom (formerly known as GZDoom) source port. The process is the same: click the ‘Add resource’ button and add the UZDoom.pk3 file, which is also located in the same folder. Click the ‘Ok’ button, which will apply the settings and close the window automatically.
=== Starting a New Map ===
You should now have everything you need to get started. Select ‘New Map’ from the menu bar and make sure that the Malefact game configuration is selected from the list. Make sure that ‘Script Type’ is set to ZDOOM ACS if it isn’t already. The level name can technically be whatever you want (though I’d strongly advise against using special characters, e.g. !), though the standard practice is to use Doom’s mapslot structure, e.g. MAP01, E1M1, etc. For the sake of this tutorial, just name it MAP01. Leave the two checkboxes empty if they aren’t. You can ignore the ‘Add resource’ button for the moment (this is used for loading mods and custom assets). Once you're happy with the settings, click the OK button.
[[File:Tutorial1 3.png|thumb|none|The Map Options Menu. Your Malefact and UZDoom pk3 files should be listed automatically if you completed the earlier step.]]
If everything loaded fine and you didn’t get error messages, that means you’re now ready to start.
== Navigation ==
[[Sector Creation|Next Tutorial: Sector Creation]]
[[Malefact Mapping Tutorials|Tutorial Index]]
[[Category:Tutorials And Guides]]
3d34448a8f1ac2a94d5973dc2da3050ae9afaaec
596
589
2025-11-12T01:11:09Z
MasterOfDisillusionment
431405
MasterOfDisillusionment renamed page [[Malefact Tutorial 1]] to [[Installing Prerequisites Tutorial]]: Misspelled title
wikitext
text/x-wiki
This series of tutorials was written for [[Malefact|Malefact: Evil Unchained]] by the lead developer and level designer.
== Installing the Prerequisites ==
=== Installing Ultimate Doom Builder ===
The first step in your genocide journey is to install the [https://ultimatedoombuilder.github.io/ Ultimate Doom Builder] level editor.
=== Installing the Editor Configuration ===
UDM was originally created as a level-editing program for Doom and Heretic and comes preinstalled with configs for those games, but Malefact requires that its config be installed manually. You can download the required files [[FutureLinkToFiles|here]].
Inside the downloaded folder, you will find two files:
* GZDoom_MalefactUDMF.cfg
* Malefact_things.cfg
You must then navigate to where you installed UDM. Usually, the install location will be something like C:\Users\MyUserName\AppData\Local\Programs\Ultimate Doom Builder
If you cannot see the AppData folder, you may have to open File Explorer (e.g. the ‘View’ tab) and check the ‘Hidden items’ box to make it visible.
Inside the Ultimate Doom Builder root folder, you’ll see another folder named ‘Configurations’. Open it. Once inside, place the GZDoom_MalefactUDMF.cfg file there. Inside this folder, you will also see another folder called ‘Includes’. Place the Malefact_things.cfg file inside that folder.
[[File:UDMFolder.png|thumb|none|Your Ultimate Doom Builder root folder should look like this.]]
=== Assigning Game Content ===
Now start Ultimate Doom Builder.
Select ‘Tools’ from the menu bar in the top-left corner, and then ‘Game Configuration’. If you followed the previous steps correctly, Malefact should be listed among the other game configurations. Note that Malefact only supports the UDMF (Universal Doom Mapping Format) format. Once you’ve found Malefact on the list, select it by left-clicking on it. Make sure you’re on the ‘Resources’ tab, and click the ‘Add resource’ button. Now navigate to your Malefact folder and load the Malefact.ipk3 file. It should now appear on the resource list. This tells UDM where all the game assets are when you are making maps using the Malefact game configuration.
[[File:Tutorial1 2.png|thumb|none|The Malefact config should now be listed among the others. ]]
You also need a second file that tells the editor you’re using the UZDoom (formerly known as GZDoom) source port. The process is the same: click the ‘Add resource’ button and add the UZDoom.pk3 file, which is also located in the same folder. Click the ‘Ok’ button, which will apply the settings and close the window automatically.
=== Starting a New Map ===
You should now have everything you need to get started. Select ‘New Map’ from the menu bar and make sure that the Malefact game configuration is selected from the list. Make sure that ‘Script Type’ is set to ZDOOM ACS if it isn’t already. The level name can technically be whatever you want (though I’d strongly advise against using special characters, e.g. !), though the standard practice is to use Doom’s mapslot structure, e.g. MAP01, E1M1, etc. For the sake of this tutorial, just name it MAP01. Leave the two checkboxes empty if they aren’t. You can ignore the ‘Add resource’ button for the moment (this is used for loading mods and custom assets). Once you're happy with the settings, click the OK button.
[[File:Tutorial1 3.png|thumb|none|The Map Options Menu. Your Malefact and UZDoom pk3 files should be listed automatically if you completed the earlier step.]]
If everything loaded fine and you didn’t get error messages, that means you’re now ready to start.
== Navigation ==
[[Sector Creation|Next Tutorial: Sector Creation]]
[[Malefact Mapping Tutorials|Tutorial Index]]
[[Category:Tutorials And Guides]]
3d34448a8f1ac2a94d5973dc2da3050ae9afaaec
598
596
2025-11-12T01:11:34Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
This series of tutorials was written for [[Malefact|Malefact: Evil Unchained]] by the lead developer and level designer.
== Installing the Prerequisites ==
=== Installing Ultimate Doom Builder ===
The first step in your genocide journey is to install the [https://ultimatedoombuilder.github.io/ Ultimate Doom Builder] level editor.
=== Installing the Editor Configuration ===
UDM was originally created as a level-editing program for Doom and Heretic and comes preinstalled with configs for those games, but Malefact requires that its config be installed manually. You can download the required files [[FutureLinkToFiles|here]].
Inside the downloaded folder, you will find two files:
* GZDoom_MalefactUDMF.cfg
* Malefact_things.cfg
You must then navigate to where you installed UDM. Usually, the install location will be something like C:\Users\MyUserName\AppData\Local\Programs\Ultimate Doom Builder
If you cannot see the AppData folder, you may have to open File Explorer (e.g. the ‘View’ tab) and check the ‘Hidden items’ box to make it visible.
Inside the Ultimate Doom Builder root folder, you’ll see another folder named ‘Configurations’. Open it. Once inside, place the GZDoom_MalefactUDMF.cfg file there. Inside this folder, you will also see another folder called ‘Includes’. Place the Malefact_things.cfg file inside that folder.
[[File:UDMFolder.png|thumb|none|Your Ultimate Doom Builder root folder should look like this.]]
=== Assigning Game Content ===
Now start Ultimate Doom Builder.
Select ‘Tools’ from the menu bar in the top-left corner, and then ‘Game Configuration’. If you followed the previous steps correctly, Malefact should be listed among the other game configurations. Note that Malefact only supports the UDMF (Universal Doom Mapping Format) format. Once you’ve found Malefact on the list, select it by left-clicking on it. Make sure you’re on the ‘Resources’ tab, and click the ‘Add resource’ button. Now navigate to your Malefact folder and load the Malefact.ipk3 file. It should now appear on the resource list. This tells UDM where all the game assets are when you are making maps using the Malefact game configuration.
[[File:Tutorial1 2.png|thumb|none|The Malefact config should now be listed among the others. ]]
You also need a second file that tells the editor you’re using the UZDoom (formerly known as GZDoom) source port. The process is the same: click the ‘Add resource’ button and add the UZDoom.pk3 file, which is also located in the same folder. Click the ‘Ok’ button, which will apply the settings and close the window automatically.
=== Starting a New Map ===
You should now have everything you need to get started. Select ‘New Map’ from the menu bar and make sure that the Malefact game configuration is selected from the list. Make sure that ‘Script Type’ is set to ZDOOM ACS if it isn’t already. The level name can technically be whatever you want (though I’d strongly advise against using special characters, e.g. !), though the standard practice is to use Doom’s mapslot structure, e.g. MAP01, E1M1, etc. For the sake of this tutorial, just name it MAP01. Leave the two checkboxes empty if they aren’t. You can ignore the ‘Add resource’ button for the moment (this is used for loading mods and custom assets). Once you're happy with the settings, click the OK button.
[[File:Tutorial1 3.png|thumb|none|The Map Options Menu. Your Malefact and UZDoom pk3 files should be listed automatically if you completed the earlier step.]]
If everything loaded fine and you didn’t get error messages, that means you’re now ready to start.
== Navigation ==
[[Sector Creation Tutorial|Next Tutorial: Sector Creation]]
[[Malefact Mapping Tutorials|Tutorial Index]]
[[Category:Tutorials And Guides]]
fe69fb23c939179133ec3f55cbb20d2521e82bd3
File:DoomCover.jpg
6
305
568
363
2025-11-11T00:15:01Z
MasterOfDisillusionment
431405
Removed protection from "[[File:DoomCover.jpg]]"
wikitext
text/x-wiki
== Summary ==
Cover art for Doom.
== Licensing ==
{{License|fairuse}}
66ba17c907796cd30787791247cc4301d3ff36be
Tutorials And Guides
0
317
570
433
2025-11-11T00:18:53Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
If you're a newcomer to modding or mapping using the UZDoom engine, this page contains useful resources for getting started.
== Guides & Tutorials ==
Guides created by our own community.
=== [[Malefact Mapping Tutorials]] ===
A level design guide for Malefact, geared toward newcomers to the game, written by the game's lead developer and level designer.
== Third Party Guides & Tutorials ==
=== Level Editing & Scripting ===
Guides created outside our community.
Note: While Doom Builder 2 is considered defunct in favor of Ultimate Doom Builder, most general functionality carries over. Just keep in mind that there may be some minor differences when watching older tutorial videos.
* [[https://youtube.com/playlist?list=PLQrQ055Wd7p77pBCmTQT6kW-K8Plmw_D-&si=DHhSQQcJ3iT16Czj| Ultimate Doombuilder Tutorials by Bridgeburner]]
* [[https://youtube.com/playlist?list=PLCE835098C82D8F24&si=c3VJyO7010AW0_2Z| Doombuilder 2 Tutorials by Chubzdoomer]]
* [[https://youtube.com/playlist?list=PLuDCrjOek9njK8hXkZmTxaU8PWzjzGql7&si=5R5NcyAeidk4GPjz| ZDoom ACS Scripting Tutorials by Chubzdoomer]]
* [[https://youtube.com/playlist?list=PL-36gm0W-VKl89pw9lUfF36TJ28bjrNUn&si=H8rclwM8wWbkBw8g| GZDoom Zscript Tutorials by DavidXNewton]]
== Misc/Other ==
* [[Wiki Syntax]]
[[Category:Tutorials And Guides]]
e16e0d3d2060c3d8ee559e7a1a96fb92961ec987
Wiki Syntax
0
319
574
437
2025-11-11T14:35:32Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
If you want to edit or create your own wiki page, you must use the syntax below.
== General Syntax ==
<syntaxhighlight lang="wikitext" style="overflow: auto;">
Headers:
= First tier = (Do not use; header 1 is reserved for page titles)
== Second tier ==
=== Third tier ===
==== Fourth tier ====
===== Fifth tier =====
====== Sixth tier ======
Internal Linking:
[[Name of target page]]
[[Name of target page|The Text to be displayed]]
External Linking:
[https://site/ The Text to be displayed]
Numbered list:
# Point one
# Point two
# Point three
## Point three subpoint one
# Point four
Bullet list:
* First point
* Second point
* Third point
** Third point, first subpoint
* Fourth point
Spoiler tag (simple):
{{spoiler|This is the spoiler text}}
Spoiler tag (multi-line):
{{spoiler|block=y|Really long spoiler that spans multiple lines
Whatever
Whatever
Etc.
}}
</syntaxhighlight>
== Infobox Templates ==
If you need to create a new type of infobox, it's crucial you understand the current method.
[[Category:Tutorials And Guides]]
f57ecafef5749608246689efac61ce84446db4a3
File:UDMFolder.png
6
347
578
2025-11-11T15:45:41Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Where the malefact config files go.
2c7a1dc6600376660444af579035d228e21736e7
580
578
2025-11-11T15:55:26Z
MasterOfDisillusionment
431405
Protected "[[File:UDMFolder.png]]": Neded for official tutorials ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
Where the malefact config files go.
2c7a1dc6600376660444af579035d228e21736e7
File:Tutorial1 2.png
6
348
581
2025-11-11T16:00:47Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Images for the first Malefact mapping tutorial.
== Licensing ==
{{License|fairuse}}
[[Category:Malefact tutorial 1]]
1448d9ea748f671c8eaa830abc703781881c4144
584
581
2025-11-11T16:03:16Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Images for the first Malefact mapping tutorial.
== Licensing ==
{{License|fairuse}}
[[Category:Malefact Tutorial Images]]
ca9138ae21d187b351847e3ca8118cece7f83d10
File:Tutorial1 3.png
6
349
582
2025-11-11T16:00:47Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Images for the first Malefact mapping tutorial.
== Licensing ==
{{License|fairuse}}
[[Category:Malefact tutorial 1]]
1448d9ea748f671c8eaa830abc703781881c4144
583
582
2025-11-11T16:03:08Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Images for the first Malefact mapping tutorial.
== Licensing ==
{{License|fairuse}}
[[Category:Malefact Tutorial Images]]
ca9138ae21d187b351847e3ca8118cece7f83d10
Sector Creation Tutorial
0
350
594
2025-11-12T01:10:03Z
MasterOfDisillusionment
431405
Created page with "If you did everything correctly during the last tutorial, you should now be seeing the editor viewport. <Insert Image of viewport.> I should note that we will not be dedicating a separate chapter to the UI; we’ll explain its elements as we go, on a need-to-know basis, so things don’t get bogged down. == Viewport Navigation == You can move around the map space in several ways: * Using the arrow keys on the keyboard. * Hold the spacebar while moving the mouse curs..."
wikitext
text/x-wiki
If you did everything correctly during the last tutorial, you should now be seeing the editor viewport.
<Insert Image of viewport.>
I should note that we will not be dedicating a separate chapter to the UI; we’ll explain its elements as we go, on a need-to-know basis, so things don’t get bogged down.
== Viewport Navigation ==
You can move around the map space in several ways:
* Using the arrow keys on the keyboard.
* Hold the spacebar while moving the mouse cursor around.
* Zoom in and out using the mouse scroll wheel.
== Explaining the Sector Concept ==
Before you can create anything, you must first understand the concept of ‘sectors’ and how they are used in UDM level editing.
Sectors are the fundamental building blocks that define the areas of your map. By editing a sector's properties, you control its floor height, ceiling height, lighting level, textures, and any special behaviors (e.g. damaging floors, flickering lights, etc).
Sectors are themselves made up of ‘linedefs’ and ‘vertices’:
* Linedefs are the lines that form the boundaries of sectors, connecting vertices to create the map's walls and outlines. They hold properties for the textures seen on their front (and potentially back) sides, and they can be assigned ‘actions’ that trigger events like opening doors, raising lifts, or ending the level when the player crosses or activates them.
* Vertices are the most basic component, representing the individual points or ‘corners’ at specific coordinates on the 2D grid. They serve as the endpoints that linedefs connect to, allowing you to define the shape, angles, and layout of all the sectors and lines in your level.
== Your First Sector ==
Now that you know what a sector is, let’s create a few. But first, let’s go over the relevant interfaces and settings you should be familiar with.
=== Configuring the Grid ===
A common beginner mistake is not understanding the importance of choosing an appropriate grid size for the right job. Using arbitrary sizes can ruin the tiling for flats and textures, in addition to looking amateurish and clumsy. For most purposes, the following sizes are well suited:
* 256x and larger: Only used when sketching out layouts for especially large areas.
* 128x: Good for quickly sketching out most rooms or areas.
* 64x: The smallest minimum placespace where gameplay can feasibly take place. Good for creating smaller areas or for trimming larger ones.
* 32x and smaller: Only used for detailing or specific types of geometry (e.g. windows). Should never be used for creating gameplay spaces unless unavoidable.
You can find the grid settings on the UI bar in the lower-right corner. Left-clicking on it will open a context menu where you can select the grid options. If, for any reason, you wish to hide the gridlines (note: the grid is still active, you just can’t see it), you can uncheck the ‘Render Grid’ option in the View menu located in the top-left corner. Alternatively, you can press Alt+G to toggle it on or off. By default, I recommend keeping the grid enabled.
<Insert Image of UI bar where the grid is.>
=== Editing Modes ===
At the top of the left toolbar, you can find various tools for creating sectors. In practice, however, you usually only need the following three:
* Sector Mode
* Linedef Mode
* Vertices Mode
There are more that we’ll look at later, but the three above are sufficient for most use cases. All of them allow you to draw sectors onto the grid; the difference lies in how they let you edit those sectors afterward. For now, start by selecting and enabling Sector Mode, which you can do by left-clicking the corresponding icon or by pressing the S key.
<Insert image of Drawing Tools Icons>
=== Drawing the Sector ===
Make sure the grid is set to 128 units, then right-click over the part of the grid where you want to start creating your sector. This will automatically place a vertex at that location. As you move the cursor, you’ll notice that a line (the linedef) follows your cursor. Move the cursor to where you want the end of your first wall to be, then left-click. This places a second vertex at that location, and a linedef is automatically generated between it and the previous one, forming a sector boundary (or a wall, in simpler terms). Continue this process until you’re ready to complete the sector, which you do by left-clicking on the original starting vertex. What you see next depends on which view mode is enabled.
<Insert gif of sector creation.>
=== View Modes ===
Now that you’ve created your first sector, it’s time to talk about view modes, which you can find in the ‘View’ menu on the upper-left toolbar. While there are many, for now you only need to know about the following three:
* Wireframe: Renders the map as an untextured wireframe. Useful when you want to focus on layout without being distracted by detailed visuals
* Floor Textures: Renders the floor surfaces inside sectors with textures. Useful for checking that flats tile correctly and for splitting sectors when adding detail.
* Ceiling Textures: Ditto but for ceilings.
<Insert image of View Modes.>
For the moment, make sure that you’re using either Wireframe or Floor Textures mode.
== Editing Sectors ==
Now that you’ve created a sector, it’s time to explain how to manipulate it and its subcomponents.
=== Transforming Sector Components ===
To move something you’ve already created (whether it’s an entire sector or individual linedefs or vertices), make sure the appropriate mode is selected (e.g. Linedef Mode if you want to move a wall), place the cursor over the component, and then hold down the right mouse button while moving the cursor to drag the element. Anything attached to the element being moved will deform accordingly. This is useful when adjusting the size of a sector, changing the position of corners, or modifying the length of wall sections.
You can select multiple elements by left-clicking each one (just be careful not to miss, since clicking on empty space will deselect everything), or by using marquee selection by holding down the left mouse button and dragging a boundary around all the elements you want to select.
=== Splitting, Combing, and Merging Sectors ===
Existing sectors can be split, combined, or merged to form larger or smaller subsectors for detailing or gameplay purposes.
To split a sector, simply draw a linedef across it. To combine sectors, either move one until it borders another or create a new sector that connects them.
Note that ‘combining’ and ‘merging’ sectors are different concepts in this context. Adjacent sectors may look like a single room during gameplay, but they still exist as individual sectors. If you look at the linedef/linedefs separating neighboring sectors, you’ll see that it appears partially transparent. This means no wall textures are rendered on those linedefs (unless specifically told otherwise), and actors such as the player, enemies, or projectiles can pass through them. Linedef properties are a topic in their own right and will be elaborated on in more detail in a future tutorial. Ditto for sector properties. Vertices do not have editable properties.
To merge multiple sectors into a single one, make sure each is selected while in Sector Mode. Then open the ‘Sectors’ drop-down menu in the upper-right toolbar and click the ‘Merge Sectors’ option, or simply press Shift-J. Note that the merging process may leave behind leftover vertices, and it’s generally recommended to delete them for the sake of clean topology. To do this, enable Vertices Mode, select the vertices you want to remove, and press the Delete key on your keyboard. The Delete key can also be used to remove any other element, such as sectors, linedefs, or actors.
Speaking of additional vertices, this is a good opportunity to mention that you can alter the shape of an existing sector without creating a new one by adding extra vertices to linedefs while in Vertices Mode, giving you more corners to work with that you can drag around to change the shape of the sector. Depending on the situation, this may or may not be the preferred method. Use whatever approach works best for you.
== Navigation ==
[[Malefact Tutorial 1|Previous Tutorial: Installing Prerequisites]]
[[Malefact Tutorial 3|Next Tutorial: Texturing]]
[[Malefact Mapping Tutorials|Tutorial Index]]
[[Category:Tutorials And Guides]]
7e691a5da7ca368b6b6e2292b760f92fbd8751cb
599
594
2025-11-12T21:34:41Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
If you did everything correctly during the last tutorial, you should now be seeing the editor viewport.
<Insert Image of viewport.>
I should note that we will not be dedicating a separate chapter to the UI; we’ll explain its elements as we go, on a need-to-know basis, so things don’t get bogged down.
== Viewport Navigation ==
You can move around the map space in several ways:
* Using the arrow keys on the keyboard.
* Hold the spacebar while moving the mouse cursor around.
* Zoom in and out using the mouse scroll wheel.
== Explaining the Sector Concept ==
Before you can create anything, you must first understand the concept of ‘sectors’ and how they are used in UDM level editing.
Sectors are the fundamental building blocks that define the areas of your map. By editing a sector's properties, you control its floor height, ceiling height, lighting level, textures, and any special behaviors (e.g. damaging floors, flickering lights, etc).
Sectors are themselves made up of ‘linedefs’ and ‘vertices’:
* Linedefs are the lines that form the boundaries of sectors, connecting vertices to create the map's walls and outlines. They hold properties for the textures seen on their front (and potentially back) sides, and they can be assigned ‘actions’ that trigger events like opening doors, raising lifts, or ending the level when the player crosses or activates them.
* Vertices are the most basic component, representing the individual points or ‘corners’ at specific coordinates on the 2D grid. They serve as the endpoints that linedefs connect to, allowing you to define the shape, angles, and layout of all the sectors and lines in your level.
== Your First Sector ==
Now that you know what a sector is, let’s create a few. But first, let’s go over the relevant interfaces and settings you should be familiar with.
=== Configuring the Grid ===
A common beginner mistake is not understanding the importance of choosing an appropriate grid size for the right job. Using arbitrary sizes can ruin the tiling for flats and textures, in addition to looking amateurish and clumsy. For most purposes, the following sizes are well suited:
* 256x and larger: Only used when sketching out layouts for especially large areas.
* 128x: Good for quickly sketching out most rooms or areas.
* 64x: The smallest minimum placespace where gameplay can feasibly take place. Good for creating smaller areas or for trimming larger ones.
* 32x and smaller: Only used for detailing or specific types of geometry (e.g. windows). Should never be used for creating gameplay spaces unless unavoidable.
You can find the grid settings on the UI bar in the lower-right corner. Left-clicking on it will open a context menu where you can select the grid options. If, for any reason, you wish to hide the gridlines (note: the grid is still active, you just can’t see it), you can uncheck the ‘Render Grid’ option in the View menu located in the top-left corner. Alternatively, you can press Alt+G to toggle it on or off. By default, I recommend keeping the grid enabled.
<Insert Image of UI bar where the grid is.>
=== Editing Modes ===
At the top of the left toolbar, you can find various tools for creating sectors. In practice, however, you usually only need the following three:
* Sector Mode
* Linedef Mode
* Vertices Mode
There are more that we’ll look at later, but the three above are sufficient for most use cases. All of them allow you to draw sectors onto the grid; the difference lies in how they let you edit those sectors afterward. For now, start by selecting and enabling Sector Mode, which you can do by left-clicking the corresponding icon or by pressing the S key.
<Insert image of Drawing Tools Icons>
=== Drawing the Sector ===
Make sure the grid is set to 128 units, then right-click over the part of the grid where you want to start creating your sector. This will automatically place a vertex at that location. As you move the cursor, you’ll notice that a line (the linedef) follows your cursor. Move the cursor to where you want the end of your first wall to be, then left-click. This places a second vertex at that location, and a linedef is automatically generated between it and the previous one, forming a sector boundary (or a wall, in simpler terms). Continue this process until you’re ready to complete the sector, which you do by left-clicking on the original starting vertex. What you see next depends on which view mode is enabled.
<Insert gif of sector creation.>
=== View Modes ===
Now that you’ve created your first sector, it’s time to talk about view modes, which you can find in the ‘View’ menu on the upper-left toolbar. While there are many, for now you only need to know about the following three:
* Wireframe: Renders the map as an untextured wireframe. Useful when you want to focus on layout without being distracted by detailed visuals
* Floor Textures: Renders the floor surfaces inside sectors with textures. Useful for checking that flats tile correctly and for splitting sectors when adding detail.
* Ceiling Textures: Ditto but for ceilings.
<Insert image of View Modes.>
For the moment, make sure that you’re using either Wireframe or Floor Textures mode.
== Editing Sectors ==
Now that you’ve created a sector, it’s time to explain how to manipulate it and its subcomponents.
=== Transforming Sector Components ===
To move something you’ve already created (whether it’s an entire sector or individual linedefs or vertices), make sure the appropriate mode is selected (e.g. Linedef Mode if you want to move a wall), place the cursor over the component, and then hold down the right mouse button while moving the cursor to drag the element. Anything attached to the element being moved will deform accordingly. This is useful when adjusting the size of a sector, changing the position of corners, or modifying the length of wall sections.
You can select multiple elements by left-clicking each one (just be careful not to miss, since clicking on empty space will deselect everything), or by using marquee selection by holding down the left mouse button and dragging a boundary around all the elements you want to select.
=== Splitting, Combing, and Merging Sectors ===
Existing sectors can be split, combined, or merged to form larger or smaller subsectors for detailing or gameplay purposes.
To split a sector, simply draw a linedef across it. To combine sectors, either move one until it borders another or create a new sector that connects them.
Note that ‘combining’ and ‘merging’ sectors are different concepts in this context. Adjacent sectors may look like a single room during gameplay, but they still exist as individual sectors. If you look at the linedef/linedefs separating neighboring sectors, you’ll see that it appears partially transparent. This means no wall textures are rendered on those linedefs (unless specifically told otherwise), and actors such as the player, enemies, or projectiles can pass through them. Linedef properties are a topic in their own right and will be elaborated on in more detail in a future tutorial. Ditto for sector properties. Vertices do not have editable properties.
To merge multiple sectors into a single one, make sure each is selected while in Sector Mode. Then open the ‘Sectors’ drop-down menu in the upper-right toolbar and click the ‘Merge Sectors’ option, or simply press Shift-J. Note that the merging process may leave behind leftover vertices, and it’s generally recommended to delete them for the sake of clean topology. To do this, enable Vertices Mode, select the vertices you want to remove, and press the Delete key on your keyboard. The Delete key can also be used to remove any other element, such as sectors, linedefs, or actors.
Speaking of additional vertices, this is a good opportunity to mention that you can alter the shape of an existing sector without creating a new one by adding extra vertices to linedefs while in Vertices Mode, giving you more corners to work with that you can drag around to change the shape of the sector. Depending on the situation, this may or may not be the preferred method. Use whatever approach works best for you.
== 3D Visual Mode ==
So far, you’ve only seen what your map looks like on the 2D grid. To see what it looks like in-game without running the game, you can use UDM’s built-in 3D Visual Mode.
To activate Visual Mode, press the Q key on the keyboard or select ‘Visual Mode’ from the Mode drop-down menu in the upper-left toolbar. Once in Visual Mode, you can use the ESDF keys to move and the mouse to look around, just like in a first-person shooter. You can use the G key to enable or disable gravity.
Besides allowing you to see what your map looks like, you can also do editing inside Visual Mode, though we’ll cover that later. For the moment, don’t mess around with anything.
== Testing Your Map ==
You should now understand the basics of creating sectors in UDM. But there is still one last thing to do: testing your map.
=== Adding a Player Start ===
For your map to run, you need to define where the player spawns. In the same toolbar that contains the Sector Mode tools, you’ll find a mode called ‘Thing Mode’. Enable it.
Right-click where you want to place the Player Start. If no other actor has been created yet, a Player Start will be placed by default. If it isn’t, right-click the actor you just placed on the map to open the ‘Edit Thing’ window, then select ‘Player 1 Start’ from the ‘Player Starts’ folder.
Note that Malefact is a single-player-only game; unlike Doom, it includes only one Player Start.
Depending on your settings, the ‘Edit Thing’ window may open automatically when placing an actor. It’s recommended to disable this option under Tools > Preferences > Editing, where you can uncheck “Edit thing properties when inserting a new thing.”
=== Run Settings ===
Use the Tools menu in the upper-left toolbar to open the Game Configuration settings. Make sure the ‘Testing’ tab is open. You’ll see the following settings that must be configured before you can run your map:
* Engine: The name you assign to the engine executable used for running your level. Note that this is only the label you give that particular run setting; you can name it whatever you want.
* Application: The executable file of the engine (for example, the UZDoom .exe in your Malefact game folder, or whatever source port you’re using) that runs the level. Navigate to the game folder and select it.
* Skill Level: Selects the difficulty level used when you test the level. It doesn’t really matter what this is set to, since you can easily change it using the drop-down menu on the test button (see below).
There’s also the option to set custom parameters, but you don’t need to worry about that for now. Once you’re happy with the settings, click OK.
=== Running the Map ===
On the far right of the top toolbar, there is a green arrow icon labeled ‘Play’. To its right is a smaller icon used for selecting the difficulty level. Click this smaller icon to display all the available difficulty levels. You’ll see two separate sets, each with five settings. You can tell them apart by the cacodemon sprite, with the lower set showing a dead one. The only difference is that the monsters do not spawn when using the settings for the latter set, which can be useful for testing purposes.
An extremely important point to keep in mind about these settings is that they list the difficulty levels for Doom, but Malefact does not use those. Doom follows the standard ‘Easy, Medium, Hard’, and so on, whereas Malefact uses only settings 1 and 2 (Normal and Hard). There is no easy mode in Malefact.
This means that when you test your Malefact maps, you should run them on the lowest difficulty (setting 1) by default, and switch to setting 2 for the harder version. It is possible to add additional difficulty settings to Malefact through modding, though that is beyond the scope of this tutorial.
Select difficulty 1 from the first set, and click the test button. If you followed every previous step correctly, the map should now load automatically.
== Navigation ==
[[Malefact Tutorial 1|Previous Tutorial: Installing Prerequisites]]
[[Malefact Tutorial 3|Next Tutorial: Texturing]]
[[Malefact Mapping Tutorials|Tutorial Index]]
[[Category:Tutorials And Guides]]
e984efc508a2fc697206b1111ec0b6de6473e636
Malefact Tutorial 1
0
351
597
2025-11-12T01:11:09Z
MasterOfDisillusionment
431405
MasterOfDisillusionment renamed page [[Malefact Tutorial 1]] to [[Installing Prerequisites Tutorial]]: Misspelled title
wikitext
text/x-wiki
#REDIRECT [[Installing Prerequisites Tutorial]]
550d4e69d4b7549798d439b88e45c022cc5f020e
File:Tutorial2 1.png
6
352
600
2025-11-12T22:16:32Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Images for the Malefact tutorial series, chapter 2
== Licensing ==
{{License|fairuse}}
[[Category:Malefact Tutorial Images]]
3fbbd130bcc410427ec85d43ed79465639c5d06c
File:Tutorial2 2.png
6
353
601
2025-11-12T22:16:32Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Images for the Malefact tutorial series, chapter 2
== Licensing ==
{{License|fairuse}}
[[Category:Malefact Tutorial Images]]
3fbbd130bcc410427ec85d43ed79465639c5d06c
603
601
2025-11-12T22:25:22Z
MasterOfDisillusionment
431405
MasterOfDisillusionment uploaded a new version of [[File:Tutorial2 2.png]]
wikitext
text/x-wiki
Images for the Malefact tutorial series, chapter 2
== Licensing ==
{{License|fairuse}}
[[Category:Malefact Tutorial Images]]
3fbbd130bcc410427ec85d43ed79465639c5d06c
File:Tutorial2 3.png
6
354
602
2025-11-12T22:16:33Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Images for the Malefact tutorial series, chapter 2
== Licensing ==
{{License|fairuse}}
[[Category:Malefact Tutorial Images]]
3fbbd130bcc410427ec85d43ed79465639c5d06c
Sector Creation Tutorial
0
350
604
599
2025-11-12T22:28:42Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
If you did everything correctly during the last tutorial, you should now be seeing the editor viewport. I should note that we will not be dedicating a separate chapter to the UI; we’ll explain its elements as we go, on a need-to-know basis, so things don’t get bogged down.
== Viewport Navigation ==
You can move around the map space in several ways:
* Using the arrow keys on the keyboard.
* Hold the spacebar while moving the mouse cursor around.
* Zoom in and out using the mouse scroll wheel.
[[File:Tutorial2 1.png|thumb|none|The Ultimate Doom Builder interface and viewport.]]
== Explaining the Sector Concept ==
Before you can create anything, you must first understand the concept of ‘sectors’ and how they are used in UDM level editing.
Sectors are the fundamental building blocks that define the areas of your map. By editing a sector's properties, you control its floor height, ceiling height, lighting level, textures, and any special behaviors (e.g. damaging floors, flickering lights, etc).
Sectors are themselves made up of ‘linedefs’ and ‘vertices’:
* Linedefs are the lines that form the boundaries of sectors, connecting vertices to create the map's walls and outlines. They hold properties for the textures seen on their front (and potentially back) sides, and they can be assigned ‘actions’ that trigger events like opening doors, raising lifts, or ending the level when the player crosses or activates them.
* Vertices are the most basic component, representing the individual points or ‘corners’ at specific coordinates on the 2D grid. They serve as the endpoints that linedefs connect to, allowing you to define the shape, angles, and layout of all the sectors and lines in your level.
== Your First Sector ==
Now that you know what a sector is, let’s create a few. But first, let’s go over the relevant interfaces and settings you should be familiar with.
=== Configuring the Grid ===
A common beginner mistake is not understanding the importance of choosing an appropriate grid size for the right job. Using arbitrary sizes can ruin the tiling for flats and textures, in addition to looking amateurish and clumsy. For most purposes, the following sizes are well suited:
* 256x and larger: Only used when sketching out layouts for especially large areas.
* 128x: Good for quickly sketching out most rooms or areas.
* 64x: The smallest minimum placespace where gameplay can feasibly take place. Good for creating smaller areas or for trimming larger ones.
* 32x and smaller: Only used for detailing or specific types of geometry (e.g. windows). Should never be used for creating gameplay spaces unless unavoidable.
You can find the grid settings on the UI bar in the lower-right corner. Left-clicking on it will open a context menu where you can select the grid options. If, for any reason, you wish to hide the gridlines (note: the grid is still active, you just can’t see it), you can uncheck the ‘Render Grid’ option in the View menu located in the top-left corner. Alternatively, you can press Alt+G to toggle it on or off. By default, I recommend keeping the grid enabled.
[[File:Tutorial2 3.png|thumb|none|You can change the grid size using the controls in the bottom-left corner.]]
=== Editing Modes ===
At the top of the left toolbar, you can find various tools for creating sectors. In practice, however, you usually only need the following three:
* Sector Mode
* Linedef Mode
* Vertices Mode
There are more that we’ll look at later, but the three above are sufficient for most use cases. All of them allow you to draw sectors onto the grid; the difference lies in how they let you edit those sectors afterward. For now, start by selecting and enabling Sector Mode, which you can do by left-clicking the corresponding icon or by pressing the S key.
[[File:Tutorial2 2.png|thumb|none|From top to bottom: Vertices Mode, Linedef Mode, Sector Mode, Thing Creation Mode.]]
=== Drawing the Sector ===
Make sure the grid is set to 128 units, then right-click over the part of the grid where you want to start creating your sector. This will automatically place a vertex at that location. As you move the cursor, you’ll notice that a line (the linedef) follows your cursor. Move the cursor to where you want the end of your first wall to be, then left-click. This places a second vertex at that location, and a linedef is automatically generated between it and the previous one, forming a sector boundary (or a wall, in simpler terms). Continue this process until you’re ready to complete the sector, which you do by left-clicking on the original starting vertex. What you see next depends on which view mode is enabled.
<Insert gif of sector creation.>
=== View Modes ===
Now that you’ve created your first sector, it’s time to talk about view modes, which you can find in the ‘View’ menu on the upper-left toolbar. While there are many, for now you only need to know about the following three:
* Wireframe: Renders the map as an untextured wireframe. Useful when you want to focus on layout without being distracted by detailed visuals
* Floor Textures: Renders the floor surfaces inside sectors with textures. Useful for checking that flats tile correctly and for splitting sectors when adding detail.
* Ceiling Textures: Ditto but for ceilings.
<Insert image of View Modes.>
For the moment, make sure that you’re using either Wireframe or Floor Textures mode.
== Editing Sectors ==
Now that you’ve created a sector, it’s time to explain how to manipulate it and its subcomponents.
=== Transforming Sector Components ===
To move something you’ve already created (whether it’s an entire sector or individual linedefs or vertices), make sure the appropriate mode is selected (e.g. Linedef Mode if you want to move a wall), place the cursor over the component, and then hold down the right mouse button while moving the cursor to drag the element. Anything attached to the element being moved will deform accordingly. This is useful when adjusting the size of a sector, changing the position of corners, or modifying the length of wall sections.
You can select multiple elements by left-clicking each one (just be careful not to miss, since clicking on empty space will deselect everything), or by using marquee selection by holding down the left mouse button and dragging a boundary around all the elements you want to select.
=== Splitting, Combing, and Merging Sectors ===
Existing sectors can be split, combined, or merged to form larger or smaller subsectors for detailing or gameplay purposes.
To split a sector, simply draw a linedef across it. To combine sectors, either move one until it borders another or create a new sector that connects them.
Note that ‘combining’ and ‘merging’ sectors are different concepts in this context. Adjacent sectors may look like a single room during gameplay, but they still exist as individual sectors. If you look at the linedef/linedefs separating neighboring sectors, you’ll see that it appears partially transparent. This means no wall textures are rendered on those linedefs (unless specifically told otherwise), and actors such as the player, enemies, or projectiles can pass through them. Linedef properties are a topic in their own right and will be elaborated on in more detail in a future tutorial. Ditto for sector properties. Vertices do not have editable properties.
To merge multiple sectors into a single one, make sure each is selected while in Sector Mode. Then open the ‘Sectors’ drop-down menu in the upper-right toolbar and click the ‘Merge Sectors’ option, or simply press Shift-J. Note that the merging process may leave behind leftover vertices, and it’s generally recommended to delete them for the sake of clean topology. To do this, enable Vertices Mode, select the vertices you want to remove, and press the Delete key on your keyboard. The Delete key can also be used to remove any other element, such as sectors, linedefs, or actors.
Speaking of additional vertices, this is a good opportunity to mention that you can alter the shape of an existing sector without creating a new one by adding extra vertices to linedefs while in Vertices Mode, giving you more corners to work with that you can drag around to change the shape of the sector. Depending on the situation, this may or may not be the preferred method. Use whatever approach works best for you.
== 3D Visual Mode ==
So far, you’ve only seen what your map looks like on the 2D grid. To see what it looks like in-game without running the game, you can use UDM’s built-in 3D Visual Mode.
To activate Visual Mode, press the Q key on the keyboard or select ‘Visual Mode’ from the Mode drop-down menu in the upper-left toolbar. Once in Visual Mode, you can use the ESDF keys to move and the mouse to look around, just like in a first-person shooter. You can use the G key to enable or disable gravity.
Besides allowing you to see what your map looks like, you can also do editing inside Visual Mode, though we’ll cover that later. For the moment, don’t mess around with anything.
== Testing Your Map ==
You should now understand the basics of creating sectors in UDM. But there is still one last thing to do: testing your map.
=== Adding a Player Start ===
For your map to run, you need to define where the player spawns. In the same toolbar that contains the Sector Mode tools, you’ll find a mode called ‘Thing Mode’. Enable it.
Right-click where you want to place the Player Start. If no other actor has been created yet, a Player Start will be placed by default. If it isn’t, right-click the actor you just placed on the map to open the ‘Edit Thing’ window, then select ‘Player 1 Start’ from the ‘Player Starts’ folder.
Note that Malefact is a single-player-only game; unlike Doom, it includes only one Player Start.
Depending on your settings, the ‘Edit Thing’ window may open automatically when placing an actor. It’s recommended to disable this option under Tools > Preferences > Editing, where you can uncheck “Edit thing properties when inserting a new thing.”
=== Run Settings ===
Use the Tools menu in the upper-left toolbar to open the Game Configuration settings. Make sure the ‘Testing’ tab is open. You’ll see the following settings that must be configured before you can run your map:
* Engine: The name you assign to the engine executable used for running your level. Note that this is only the label you give that particular run setting; you can name it whatever you want.
* Application: The executable file of the engine (for example, the UZDoom .exe in your Malefact game folder, or whatever source port you’re using) that runs the level. Navigate to the game folder and select it.
* Skill Level: Selects the difficulty level used when you test the level. It doesn’t really matter what this is set to, since you can easily change it using the drop-down menu on the test button (see below).
There’s also the option to set custom parameters, but you don’t need to worry about that for now. Once you’re happy with the settings, click OK.
=== Running the Map ===
On the far right of the top toolbar, there is a green arrow icon labeled ‘Play’. To its right is a smaller icon used for selecting the difficulty level. Click this smaller icon to display all the available difficulty levels. You’ll see two separate sets, each with five settings. You can tell them apart by the cacodemon sprite, with the lower set showing a dead one. The only difference is that the monsters do not spawn when using the settings for the latter set, which can be useful for testing purposes.
An extremely important point to keep in mind about these settings is that they list the difficulty levels for Doom, but Malefact does not use those. Doom follows the standard ‘Easy, Medium, Hard’, and so on, whereas Malefact uses only settings 1 and 2 (Normal and Hard). There is no easy mode in Malefact.
This means that when you test your Malefact maps, you should run them on the lowest difficulty (setting 1) by default, and switch to setting 2 for the harder version. It is possible to add additional difficulty settings to Malefact through modding, though that is beyond the scope of this tutorial.
Select difficulty 1 from the first set, and click the test button. If you followed every previous step correctly, the map should now load automatically.
== Navigation ==
[[Malefact Tutorial 1|Previous Tutorial: Installing Prerequisites]]
[[Malefact Tutorial 3|Next Tutorial: Texturing]]
[[Malefact Mapping Tutorials|Tutorial Index]]
[[Category:Tutorials And Guides]]
efa3e9695f377f14644e0add75ddfedfab1d00eb
607
604
2025-11-12T22:39:27Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
If you did everything correctly during the last tutorial, you should now be seeing the editor viewport. I should note that we will not be dedicating a separate chapter to the UI; we’ll explain its elements as we go, on a need-to-know basis, so things don’t get bogged down.
== Viewport Navigation ==
You can move around the map space in several ways:
* Using the arrow keys on the keyboard.
* Hold the spacebar while moving the mouse cursor around.
* Zoom in and out using the mouse scroll wheel.
[[File:Tutorial2 1.png|thumb|none|The Ultimate Doom Builder interface and viewport.]]
== Explaining the Sector Concept ==
Before you can create anything, you must first understand the concept of ‘sectors’ and how they are used in UDM level editing.
Sectors are the fundamental building blocks that define the areas of your map. By editing a sector's properties, you control its floor height, ceiling height, lighting level, textures, and any special behaviors (e.g. damaging floors, flickering lights, etc).
Sectors are themselves made up of ‘linedefs’ and ‘vertices’:
* Linedefs are the lines that form the boundaries of sectors, connecting vertices to create the map's walls and outlines. They hold properties for the textures seen on their front (and potentially back) sides, and they can be assigned ‘actions’ that trigger events like opening doors, raising lifts, or ending the level when the player crosses or activates them.
* Vertices are the most basic component, representing the individual points or ‘corners’ at specific coordinates on the 2D grid. They serve as the endpoints that linedefs connect to, allowing you to define the shape, angles, and layout of all the sectors and lines in your level.
== Your First Sector ==
Now that you know what a sector is, let’s create a few. But first, let’s go over the relevant interfaces and settings you should be familiar with.
=== Configuring the Grid ===
A common beginner mistake is not understanding the importance of choosing an appropriate grid size for the right job. Using arbitrary sizes can ruin the tiling for flats and textures, in addition to looking amateurish and clumsy. For most purposes, the following sizes are well suited:
* 256x and larger: Only used when sketching out layouts for especially large areas.
* 128x: Good for quickly sketching out most rooms or areas.
* 64x: The smallest minimum placespace where gameplay can feasibly take place. Good for creating smaller areas or for trimming larger ones.
* 32x and smaller: Only used for detailing or specific types of geometry (e.g. windows). Should never be used for creating gameplay spaces unless unavoidable.
You can find the grid settings on the UI bar in the lower-right corner. Left-clicking on it will open a context menu where you can select the grid options. If, for any reason, you wish to hide the gridlines (note: the grid is still active, you just can’t see it), you can uncheck the ‘Render Grid’ option in the View menu located in the top-left corner. Alternatively, you can press Alt+G to toggle it on or off. By default, I recommend keeping the grid enabled.
[[File:Tutorial2 3.png|thumb|none|You can change the grid size using the controls in the bottom-left corner.]]
=== Editing Modes ===
At the top of the left toolbar, you can find various tools for creating sectors. In practice, however, you usually only need the following three:
* Sector Mode
* Linedef Mode
* Vertices Mode
There are more that we’ll look at later, but the three above are sufficient for most use cases. All of them allow you to draw sectors onto the grid; the difference lies in how they let you edit those sectors afterward. For now, start by selecting and enabling Sector Mode, which you can do by left-clicking the corresponding icon or by pressing the S key.
[[File:Tutorial2 2.png|thumb|none|From top to bottom: Vertices Mode, Linedef Mode, Sector Mode, Thing Creation Mode.]]
=== Drawing the Sector ===
Make sure the grid is set to 128 units, then right-click over the part of the grid where you want to start creating your sector. This will automatically place a vertex at that location. As you move the cursor, you’ll notice that a line (the linedef) follows your cursor. Move the cursor to where you want the end of your first wall to be, then left-click. This places a second vertex at that location, and a linedef is automatically generated between it and the previous one, forming a sector boundary (or a wall, in simpler terms). Continue this process until you’re ready to complete the sector, which you do by left-clicking on the original starting vertex. What you see next depends on which view mode is enabled.
[[File:Tutorial2 4.gif|thumb|none|A demonstration of sector creation while in Sector Mode.]]
=== View Modes ===
Now that you’ve created your first sector, it’s time to talk about view modes, which you can find in the ‘View’ menu on the upper-left toolbar. While there are many, for now you only need to know about the following three:
* Wireframe: Renders the map as an untextured wireframe. Useful when you want to focus on layout without being distracted by detailed visuals
* Floor Textures: Renders the floor surfaces inside sectors with textures. Useful for checking that flats tile correctly and for splitting sectors when adding detail.
* Ceiling Textures: Ditto but for ceilings.
<Insert image of View Modes.>
For the moment, make sure that you’re using either Wireframe or Floor Textures mode.
== Editing Sectors ==
Now that you’ve created a sector, it’s time to explain how to manipulate it and its subcomponents.
=== Transforming Sector Components ===
To move something you’ve already created (whether it’s an entire sector or individual linedefs or vertices), make sure the appropriate mode is selected (e.g. Linedef Mode if you want to move a wall), place the cursor over the component, and then hold down the right mouse button while moving the cursor to drag the element. Anything attached to the element being moved will deform accordingly. This is useful when adjusting the size of a sector, changing the position of corners, or modifying the length of wall sections.
You can select multiple elements by left-clicking each one (just be careful not to miss, since clicking on empty space will deselect everything), or by using marquee selection by holding down the left mouse button and dragging a boundary around all the elements you want to select.
=== Splitting, Combing, and Merging Sectors ===
Existing sectors can be split, combined, or merged to form larger or smaller subsectors for detailing or gameplay purposes.
To split a sector, simply draw a linedef across it. To combine sectors, either move one until it borders another or create a new sector that connects them.
Note that ‘combining’ and ‘merging’ sectors are different concepts in this context. Adjacent sectors may look like a single room during gameplay, but they still exist as individual sectors. If you look at the linedef/linedefs separating neighboring sectors, you’ll see that it appears partially transparent. This means no wall textures are rendered on those linedefs (unless specifically told otherwise), and actors such as the player, enemies, or projectiles can pass through them. Linedef properties are a topic in their own right and will be elaborated on in more detail in a future tutorial. Ditto for sector properties. Vertices do not have editable properties.
To merge multiple sectors into a single one, make sure each is selected while in Sector Mode. Then open the ‘Sectors’ drop-down menu in the upper-right toolbar and click the ‘Merge Sectors’ option, or simply press Shift-J. Note that the merging process may leave behind leftover vertices, and it’s generally recommended to delete them for the sake of clean topology. To do this, enable Vertices Mode, select the vertices you want to remove, and press the Delete key on your keyboard. The Delete key can also be used to remove any other element, such as sectors, linedefs, or actors.
Speaking of additional vertices, this is a good opportunity to mention that you can alter the shape of an existing sector without creating a new one by adding extra vertices to linedefs while in Vertices Mode, giving you more corners to work with that you can drag around to change the shape of the sector. Depending on the situation, this may or may not be the preferred method. Use whatever approach works best for you.
== 3D Visual Mode ==
So far, you’ve only seen what your map looks like on the 2D grid. To see what it looks like in-game without running the game, you can use UDM’s built-in 3D Visual Mode.
To activate Visual Mode, press the Q key on the keyboard or select ‘Visual Mode’ from the Mode drop-down menu in the upper-left toolbar. Once in Visual Mode, you can use the ESDF keys to move and the mouse to look around, just like in a first-person shooter. You can use the G key to enable or disable gravity.
Besides allowing you to see what your map looks like, you can also do editing inside Visual Mode, though we’ll cover that later. For the moment, don’t mess around with anything.
== Testing Your Map ==
You should now understand the basics of creating sectors in UDM. But there is still one last thing to do: testing your map.
=== Adding a Player Start ===
For your map to run, you need to define where the player spawns. In the same toolbar that contains the Sector Mode tools, you’ll find a mode called ‘Thing Mode’. Enable it.
Right-click where you want to place the Player Start. If no other actor has been created yet, a Player Start will be placed by default. If it isn’t, right-click the actor you just placed on the map to open the ‘Edit Thing’ window, then select ‘Player 1 Start’ from the ‘Player Starts’ folder.
Note that Malefact is a single-player-only game; unlike Doom, it includes only one Player Start.
Depending on your settings, the ‘Edit Thing’ window may open automatically when placing an actor. It’s recommended to disable this option under Tools > Preferences > Editing, where you can uncheck “Edit thing properties when inserting a new thing.”
=== Run Settings ===
Use the Tools menu in the upper-left toolbar to open the Game Configuration settings. Make sure the ‘Testing’ tab is open. You’ll see the following settings that must be configured before you can run your map:
* Engine: The name you assign to the engine executable used for running your level. Note that this is only the label you give that particular run setting; you can name it whatever you want.
* Application: The executable file of the engine (for example, the UZDoom .exe in your Malefact game folder, or whatever source port you’re using) that runs the level. Navigate to the game folder and select it.
* Skill Level: Selects the difficulty level used when you test the level. It doesn’t really matter what this is set to, since you can easily change it using the drop-down menu on the test button (see below).
There’s also the option to set custom parameters, but you don’t need to worry about that for now. Once you’re happy with the settings, click OK.
=== Running the Map ===
On the far right of the top toolbar, there is a green arrow icon labeled ‘Play’. To its right is a smaller icon used for selecting the difficulty level. Click this smaller icon to display all the available difficulty levels. You’ll see two separate sets, each with five settings. You can tell them apart by the cacodemon sprite, with the lower set showing a dead one. The only difference is that the monsters do not spawn when using the settings for the latter set, which can be useful for testing purposes.
An extremely important point to keep in mind about these settings is that they list the difficulty levels for Doom, but Malefact does not use those. Doom follows the standard ‘Easy, Medium, Hard’, and so on, whereas Malefact uses only settings 1 and 2 (Normal and Hard). There is no easy mode in Malefact.
This means that when you test your Malefact maps, you should run them on the lowest difficulty (setting 1) by default, and switch to setting 2 for the harder version. It is possible to add additional difficulty settings to Malefact through modding, though that is beyond the scope of this tutorial.
Select difficulty 1 from the first set, and click the test button. If you followed every previous step correctly, the map should now load automatically.
== Navigation ==
[[Malefact Tutorial 1|Previous Tutorial: Installing Prerequisites]]
[[Malefact Tutorial 3|Next Tutorial: Texturing]]
[[Malefact Mapping Tutorials|Tutorial Index]]
[[Category:Tutorials And Guides]]
ff8542013260029c17273ba1c02d600f0659ca10
608
607
2025-11-12T22:44:53Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
If you did everything correctly during the last tutorial, you should now be seeing the editor viewport. I should note that we will not be dedicating a separate chapter to the UI; we’ll explain its elements as we go, on a need-to-know basis, so things don’t get bogged down.
== Viewport Navigation ==
You can move around the map space in several ways:
* Using the arrow keys on the keyboard.
* Hold the spacebar while moving the mouse cursor around.
* Zoom in and out using the mouse scroll wheel.
[[File:Tutorial2 1.png|thumb|none|The Ultimate Doom Builder interface and viewport.]]
== Explaining the Sector Concept ==
Before you can create anything, you must first understand the concept of ‘sectors’ and how they are used in UDM level editing.
Sectors are the fundamental building blocks that define the areas of your map. By editing a sector's properties, you control its floor height, ceiling height, lighting level, textures, and any special behaviors (e.g. damaging floors, flickering lights, etc).
Sectors are themselves made up of ‘linedefs’ and ‘vertices’:
* Linedefs are the lines that form the boundaries of sectors, connecting vertices to create the map's walls and outlines. They hold properties for the textures seen on their front (and potentially back) sides, and they can be assigned ‘actions’ that trigger events like opening doors, raising lifts, or ending the level when the player crosses or activates them.
* Vertices are the most basic component, representing the individual points or ‘corners’ at specific coordinates on the 2D grid. They serve as the endpoints that linedefs connect to, allowing you to define the shape, angles, and layout of all the sectors and lines in your level.
== Your First Sector ==
Now that you know what a sector is, let’s create a few. But first, let’s go over the relevant interfaces and settings you should be familiar with.
=== Configuring the Grid ===
A common beginner mistake is not understanding the importance of choosing an appropriate grid size for the right job. Using arbitrary sizes can ruin the tiling for flats and textures, in addition to looking amateurish and clumsy. For most purposes, the following sizes are well suited:
* 256x and larger: Only used when sketching out layouts for especially large areas.
* 128x: Good for quickly sketching out most rooms or areas.
* 64x: The smallest minimum placespace where gameplay can feasibly take place. Good for creating smaller areas or for trimming larger ones.
* 32x and smaller: Only used for detailing or specific types of geometry (e.g. windows). Should never be used for creating gameplay spaces unless unavoidable.
You can find the grid settings on the UI bar in the lower-right corner. Left-clicking on it will open a context menu where you can select the grid options. If, for any reason, you wish to hide the gridlines (note: the grid is still active, you just can’t see it), you can uncheck the ‘Render Grid’ option in the View menu located in the top-left corner. Alternatively, you can press Alt+G to toggle it on or off. By default, I recommend keeping the grid enabled.
[[File:Tutorial2 3.png|thumb|none|You can change the grid size using the controls in the bottom-left corner.]]
=== Editing Modes ===
At the top of the left toolbar, you can find various tools for creating sectors. In practice, however, you usually only need the following three:
* Sector Mode
* Linedef Mode
* Vertices Mode
There are more that we’ll look at later, but the three above are sufficient for most use cases. All of them allow you to draw sectors onto the grid; the difference lies in how they let you edit those sectors afterward. For now, start by selecting and enabling Sector Mode, which you can do by left-clicking the corresponding icon or by pressing the S key.
[[File:Tutorial2 2.png|thumb|none|From top to bottom: Vertices Mode, Linedef Mode, Sector Mode, Thing Creation Mode.]]
=== Drawing the Sector ===
Make sure the grid is set to 128 units, then right-click over the part of the grid where you want to start creating your sector. This will automatically place a vertex at that location. As you move the cursor, you’ll notice that a line (the linedef) follows your cursor. Move the cursor to where you want the end of your first wall to be, then left-click. This places a second vertex at that location, and a linedef is automatically generated between it and the previous one, forming a sector boundary (or a wall, in simpler terms). Continue this process until you’re ready to complete the sector, which you do by left-clicking on the original starting vertex. What you see next depends on which view mode is enabled.
[[File:Tutorial2 4.gif|thumb|none|A demonstration of sector creation while in Sector Mode.]]
Do not be concerned if the specific line coloring differs between the preview images and your own setup; linedef colors can be customized in the preferences, and I simply prefer red as my default color. If you’re using the base install of UDM, they’ll probably appear white unless selected. This is inconsequential; the functionality remains the same.
=== View Modes ===
Now that you’ve created your first sector, it’s time to talk about view modes, which you can find in the ‘View’ menu on the upper-left toolbar. While there are many, for now you only need to know about the following three:
* Wireframe: Renders the map as an untextured wireframe. Useful when you want to focus on layout without being distracted by detailed visuals
* Floor Textures: Renders the floor surfaces inside sectors with textures. Useful for checking that flats tile correctly and for splitting sectors when adding detail.
* Ceiling Textures: Ditto but for ceilings.
<Insert image of View Modes.>
For the moment, make sure that you’re using either Wireframe or Floor Textures mode.
== Editing Sectors ==
Now that you’ve created a sector, it’s time to explain how to manipulate it and its subcomponents.
=== Transforming Sector Components ===
To move something you’ve already created (whether it’s an entire sector or individual linedefs or vertices), make sure the appropriate mode is selected (e.g. Linedef Mode if you want to move a wall), place the cursor over the component, and then hold down the right mouse button while moving the cursor to drag the element. Anything attached to the element being moved will deform accordingly. This is useful when adjusting the size of a sector, changing the position of corners, or modifying the length of wall sections.
You can select multiple elements by left-clicking each one (just be careful not to miss, since clicking on empty space will deselect everything), or by using marquee selection by holding down the left mouse button and dragging a boundary around all the elements you want to select.
=== Splitting, Combing, and Merging Sectors ===
Existing sectors can be split, combined, or merged to form larger or smaller subsectors for detailing or gameplay purposes.
To split a sector, simply draw a linedef across it. To combine sectors, either move one until it borders another or create a new sector that connects them.
Note that ‘combining’ and ‘merging’ sectors are different concepts in this context. Adjacent sectors may look like a single room during gameplay, but they still exist as individual sectors. If you look at the linedef/linedefs separating neighboring sectors, you’ll see that it appears partially transparent. This means no wall textures are rendered on those linedefs (unless specifically told otherwise), and actors such as the player, enemies, or projectiles can pass through them. Linedef properties are a topic in their own right and will be elaborated on in more detail in a future tutorial. Ditto for sector properties. Vertices do not have editable properties.
To merge multiple sectors into a single one, make sure each is selected while in Sector Mode. Then open the ‘Sectors’ drop-down menu in the upper-right toolbar and click the ‘Merge Sectors’ option, or simply press Shift-J. Note that the merging process may leave behind leftover vertices, and it’s generally recommended to delete them for the sake of clean topology. To do this, enable Vertices Mode, select the vertices you want to remove, and press the Delete key on your keyboard. The Delete key can also be used to remove any other element, such as sectors, linedefs, or actors.
Speaking of additional vertices, this is a good opportunity to mention that you can alter the shape of an existing sector without creating a new one by adding extra vertices to linedefs while in Vertices Mode, giving you more corners to work with that you can drag around to change the shape of the sector. Depending on the situation, this may or may not be the preferred method. Use whatever approach works best for you.
== 3D Visual Mode ==
So far, you’ve only seen what your map looks like on the 2D grid. To see what it looks like in-game without running the game, you can use UDM’s built-in 3D Visual Mode.
To activate Visual Mode, press the Q key on the keyboard or select ‘Visual Mode’ from the Mode drop-down menu in the upper-left toolbar. Once in Visual Mode, you can use the ESDF keys to move and the mouse to look around, just like in a first-person shooter. You can use the G key to enable or disable gravity.
Besides allowing you to see what your map looks like, you can also do editing inside Visual Mode, though we’ll cover that later. For the moment, don’t mess around with anything.
== Testing Your Map ==
You should now understand the basics of creating sectors in UDM. But there is still one last thing to do: testing your map.
=== Adding a Player Start ===
For your map to run, you need to define where the player spawns. In the same toolbar that contains the Sector Mode tools, you’ll find a mode called ‘Thing Mode’. Enable it.
Right-click where you want to place the Player Start. If no other actor has been created yet, a Player Start will be placed by default. If it isn’t, right-click the actor you just placed on the map to open the ‘Edit Thing’ window, then select ‘Player 1 Start’ from the ‘Player Starts’ folder.
Note that Malefact is a single-player-only game; unlike Doom, it includes only one Player Start.
Depending on your settings, the ‘Edit Thing’ window may open automatically when placing an actor. It’s recommended to disable this option under Tools > Preferences > Editing, where you can uncheck “Edit thing properties when inserting a new thing.”
=== Run Settings ===
Use the Tools menu in the upper-left toolbar to open the Game Configuration settings. Make sure the ‘Testing’ tab is open. You’ll see the following settings that must be configured before you can run your map:
* Engine: The name you assign to the engine executable used for running your level. Note that this is only the label you give that particular run setting; you can name it whatever you want.
* Application: The executable file of the engine (for example, the UZDoom .exe in your Malefact game folder, or whatever source port you’re using) that runs the level. Navigate to the game folder and select it.
* Skill Level: Selects the difficulty level used when you test the level. It doesn’t really matter what this is set to, since you can easily change it using the drop-down menu on the test button (see below).
There’s also the option to set custom parameters, but you don’t need to worry about that for now. Once you’re happy with the settings, click OK.
=== Running the Map ===
On the far right of the top toolbar, there is a green arrow icon labeled ‘Play’. To its right is a smaller icon used for selecting the difficulty level. Click this smaller icon to display all the available difficulty levels. You’ll see two separate sets, each with five settings. You can tell them apart by the cacodemon sprite, with the lower set showing a dead one. The only difference is that the monsters do not spawn when using the settings for the latter set, which can be useful for testing purposes.
An extremely important point to keep in mind about these settings is that they list the difficulty levels for Doom, but Malefact does not use those. Doom follows the standard ‘Easy, Medium, Hard’, and so on, whereas Malefact uses only settings 1 and 2 (Normal and Hard). There is no easy mode in Malefact.
This means that when you test your Malefact maps, you should run them on the lowest difficulty (setting 1) by default, and switch to setting 2 for the harder version. It is possible to add additional difficulty settings to Malefact through modding, though that is beyond the scope of this tutorial.
Select difficulty 1 from the first set, and click the test button. If you followed every previous step correctly, the map should now load automatically.
== Navigation ==
[[Malefact Tutorial 1|Previous Tutorial: Installing Prerequisites]]
[[Malefact Tutorial 3|Next Tutorial: Texturing]]
[[Malefact Mapping Tutorials|Tutorial Index]]
[[Category:Tutorials And Guides]]
3404fedb746de2f92a7baac713ad2260b9fbee54
615
608
2025-11-14T13:30:38Z
MasterOfDisillusionment
431405
Protected "[[Sector Creation Tutorial]]": Official Malefact Tutorials written by the game's developer. ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite))
wikitext
text/x-wiki
If you did everything correctly during the last tutorial, you should now be seeing the editor viewport. I should note that we will not be dedicating a separate chapter to the UI; we’ll explain its elements as we go, on a need-to-know basis, so things don’t get bogged down.
== Viewport Navigation ==
You can move around the map space in several ways:
* Using the arrow keys on the keyboard.
* Hold the spacebar while moving the mouse cursor around.
* Zoom in and out using the mouse scroll wheel.
[[File:Tutorial2 1.png|thumb|none|The Ultimate Doom Builder interface and viewport.]]
== Explaining the Sector Concept ==
Before you can create anything, you must first understand the concept of ‘sectors’ and how they are used in UDM level editing.
Sectors are the fundamental building blocks that define the areas of your map. By editing a sector's properties, you control its floor height, ceiling height, lighting level, textures, and any special behaviors (e.g. damaging floors, flickering lights, etc).
Sectors are themselves made up of ‘linedefs’ and ‘vertices’:
* Linedefs are the lines that form the boundaries of sectors, connecting vertices to create the map's walls and outlines. They hold properties for the textures seen on their front (and potentially back) sides, and they can be assigned ‘actions’ that trigger events like opening doors, raising lifts, or ending the level when the player crosses or activates them.
* Vertices are the most basic component, representing the individual points or ‘corners’ at specific coordinates on the 2D grid. They serve as the endpoints that linedefs connect to, allowing you to define the shape, angles, and layout of all the sectors and lines in your level.
== Your First Sector ==
Now that you know what a sector is, let’s create a few. But first, let’s go over the relevant interfaces and settings you should be familiar with.
=== Configuring the Grid ===
A common beginner mistake is not understanding the importance of choosing an appropriate grid size for the right job. Using arbitrary sizes can ruin the tiling for flats and textures, in addition to looking amateurish and clumsy. For most purposes, the following sizes are well suited:
* 256x and larger: Only used when sketching out layouts for especially large areas.
* 128x: Good for quickly sketching out most rooms or areas.
* 64x: The smallest minimum placespace where gameplay can feasibly take place. Good for creating smaller areas or for trimming larger ones.
* 32x and smaller: Only used for detailing or specific types of geometry (e.g. windows). Should never be used for creating gameplay spaces unless unavoidable.
You can find the grid settings on the UI bar in the lower-right corner. Left-clicking on it will open a context menu where you can select the grid options. If, for any reason, you wish to hide the gridlines (note: the grid is still active, you just can’t see it), you can uncheck the ‘Render Grid’ option in the View menu located in the top-left corner. Alternatively, you can press Alt+G to toggle it on or off. By default, I recommend keeping the grid enabled.
[[File:Tutorial2 3.png|thumb|none|You can change the grid size using the controls in the bottom-left corner.]]
=== Editing Modes ===
At the top of the left toolbar, you can find various tools for creating sectors. In practice, however, you usually only need the following three:
* Sector Mode
* Linedef Mode
* Vertices Mode
There are more that we’ll look at later, but the three above are sufficient for most use cases. All of them allow you to draw sectors onto the grid; the difference lies in how they let you edit those sectors afterward. For now, start by selecting and enabling Sector Mode, which you can do by left-clicking the corresponding icon or by pressing the S key.
[[File:Tutorial2 2.png|thumb|none|From top to bottom: Vertices Mode, Linedef Mode, Sector Mode, Thing Creation Mode.]]
=== Drawing the Sector ===
Make sure the grid is set to 128 units, then right-click over the part of the grid where you want to start creating your sector. This will automatically place a vertex at that location. As you move the cursor, you’ll notice that a line (the linedef) follows your cursor. Move the cursor to where you want the end of your first wall to be, then left-click. This places a second vertex at that location, and a linedef is automatically generated between it and the previous one, forming a sector boundary (or a wall, in simpler terms). Continue this process until you’re ready to complete the sector, which you do by left-clicking on the original starting vertex. What you see next depends on which view mode is enabled.
[[File:Tutorial2 4.gif|thumb|none|A demonstration of sector creation while in Sector Mode.]]
Do not be concerned if the specific line coloring differs between the preview images and your own setup; linedef colors can be customized in the preferences, and I simply prefer red as my default color. If you’re using the base install of UDM, they’ll probably appear white unless selected. This is inconsequential; the functionality remains the same.
=== View Modes ===
Now that you’ve created your first sector, it’s time to talk about view modes, which you can find in the ‘View’ menu on the upper-left toolbar. While there are many, for now you only need to know about the following three:
* Wireframe: Renders the map as an untextured wireframe. Useful when you want to focus on layout without being distracted by detailed visuals
* Floor Textures: Renders the floor surfaces inside sectors with textures. Useful for checking that flats tile correctly and for splitting sectors when adding detail.
* Ceiling Textures: Ditto but for ceilings.
<Insert image of View Modes.>
For the moment, make sure that you’re using either Wireframe or Floor Textures mode.
== Editing Sectors ==
Now that you’ve created a sector, it’s time to explain how to manipulate it and its subcomponents.
=== Transforming Sector Components ===
To move something you’ve already created (whether it’s an entire sector or individual linedefs or vertices), make sure the appropriate mode is selected (e.g. Linedef Mode if you want to move a wall), place the cursor over the component, and then hold down the right mouse button while moving the cursor to drag the element. Anything attached to the element being moved will deform accordingly. This is useful when adjusting the size of a sector, changing the position of corners, or modifying the length of wall sections.
You can select multiple elements by left-clicking each one (just be careful not to miss, since clicking on empty space will deselect everything), or by using marquee selection by holding down the left mouse button and dragging a boundary around all the elements you want to select.
=== Splitting, Combing, and Merging Sectors ===
Existing sectors can be split, combined, or merged to form larger or smaller subsectors for detailing or gameplay purposes.
To split a sector, simply draw a linedef across it. To combine sectors, either move one until it borders another or create a new sector that connects them.
Note that ‘combining’ and ‘merging’ sectors are different concepts in this context. Adjacent sectors may look like a single room during gameplay, but they still exist as individual sectors. If you look at the linedef/linedefs separating neighboring sectors, you’ll see that it appears partially transparent. This means no wall textures are rendered on those linedefs (unless specifically told otherwise), and actors such as the player, enemies, or projectiles can pass through them. Linedef properties are a topic in their own right and will be elaborated on in more detail in a future tutorial. Ditto for sector properties. Vertices do not have editable properties.
To merge multiple sectors into a single one, make sure each is selected while in Sector Mode. Then open the ‘Sectors’ drop-down menu in the upper-right toolbar and click the ‘Merge Sectors’ option, or simply press Shift-J. Note that the merging process may leave behind leftover vertices, and it’s generally recommended to delete them for the sake of clean topology. To do this, enable Vertices Mode, select the vertices you want to remove, and press the Delete key on your keyboard. The Delete key can also be used to remove any other element, such as sectors, linedefs, or actors.
Speaking of additional vertices, this is a good opportunity to mention that you can alter the shape of an existing sector without creating a new one by adding extra vertices to linedefs while in Vertices Mode, giving you more corners to work with that you can drag around to change the shape of the sector. Depending on the situation, this may or may not be the preferred method. Use whatever approach works best for you.
== 3D Visual Mode ==
So far, you’ve only seen what your map looks like on the 2D grid. To see what it looks like in-game without running the game, you can use UDM’s built-in 3D Visual Mode.
To activate Visual Mode, press the Q key on the keyboard or select ‘Visual Mode’ from the Mode drop-down menu in the upper-left toolbar. Once in Visual Mode, you can use the ESDF keys to move and the mouse to look around, just like in a first-person shooter. You can use the G key to enable or disable gravity.
Besides allowing you to see what your map looks like, you can also do editing inside Visual Mode, though we’ll cover that later. For the moment, don’t mess around with anything.
== Testing Your Map ==
You should now understand the basics of creating sectors in UDM. But there is still one last thing to do: testing your map.
=== Adding a Player Start ===
For your map to run, you need to define where the player spawns. In the same toolbar that contains the Sector Mode tools, you’ll find a mode called ‘Thing Mode’. Enable it.
Right-click where you want to place the Player Start. If no other actor has been created yet, a Player Start will be placed by default. If it isn’t, right-click the actor you just placed on the map to open the ‘Edit Thing’ window, then select ‘Player 1 Start’ from the ‘Player Starts’ folder.
Note that Malefact is a single-player-only game; unlike Doom, it includes only one Player Start.
Depending on your settings, the ‘Edit Thing’ window may open automatically when placing an actor. It’s recommended to disable this option under Tools > Preferences > Editing, where you can uncheck “Edit thing properties when inserting a new thing.”
=== Run Settings ===
Use the Tools menu in the upper-left toolbar to open the Game Configuration settings. Make sure the ‘Testing’ tab is open. You’ll see the following settings that must be configured before you can run your map:
* Engine: The name you assign to the engine executable used for running your level. Note that this is only the label you give that particular run setting; you can name it whatever you want.
* Application: The executable file of the engine (for example, the UZDoom .exe in your Malefact game folder, or whatever source port you’re using) that runs the level. Navigate to the game folder and select it.
* Skill Level: Selects the difficulty level used when you test the level. It doesn’t really matter what this is set to, since you can easily change it using the drop-down menu on the test button (see below).
There’s also the option to set custom parameters, but you don’t need to worry about that for now. Once you’re happy with the settings, click OK.
=== Running the Map ===
On the far right of the top toolbar, there is a green arrow icon labeled ‘Play’. To its right is a smaller icon used for selecting the difficulty level. Click this smaller icon to display all the available difficulty levels. You’ll see two separate sets, each with five settings. You can tell them apart by the cacodemon sprite, with the lower set showing a dead one. The only difference is that the monsters do not spawn when using the settings for the latter set, which can be useful for testing purposes.
An extremely important point to keep in mind about these settings is that they list the difficulty levels for Doom, but Malefact does not use those. Doom follows the standard ‘Easy, Medium, Hard’, and so on, whereas Malefact uses only settings 1 and 2 (Normal and Hard). There is no easy mode in Malefact.
This means that when you test your Malefact maps, you should run them on the lowest difficulty (setting 1) by default, and switch to setting 2 for the harder version. It is possible to add additional difficulty settings to Malefact through modding, though that is beyond the scope of this tutorial.
Select difficulty 1 from the first set, and click the test button. If you followed every previous step correctly, the map should now load automatically.
== Navigation ==
[[Malefact Tutorial 1|Previous Tutorial: Installing Prerequisites]]
[[Malefact Tutorial 3|Next Tutorial: Texturing]]
[[Malefact Mapping Tutorials|Tutorial Index]]
[[Category:Tutorials And Guides]]
3404fedb746de2f92a7baac713ad2260b9fbee54
File:Tutorial2 4.gif
6
355
605
2025-11-12T22:37:13Z
MasterOfDisillusionment
431405
Sector creation gif
wikitext
text/x-wiki
== Summary ==
Sector creation gif
== Licensing ==
{{License|fairuse}}
fbfb6b4efe5fe6d18b087954bc2043c92b34e446
606
605
2025-11-12T22:39:11Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
== Summary ==
Sector creation gif
== Licensing ==
{{License|fairuse}}
[[Category:Malefact Tutorial Images]]
3896159d9422b84d1ecabdc960362f4f7e312d0f
Mods And Assets
0
316
609
432
2025-11-14T13:00:16Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
User-created content belonging to any of the curated list of Doom engine games is listed here. Custom assets for use in your own mods are listed here as well.
There are three main parent categories:
'''Hardcore Originals:''' The official projects of hardcoredoom.com.
'''Community Mods''': Mods created by the [[hardcoredoom]] community.
'''Endorsed Mods:''' Third-party mods that were not created by the hardcoredoom community.
Keep in mind that this is a curated list; do not create pages for mods or content unless they meet a certain minimum threshold for quality.
== Hardcore Originals ==
=== Mods ===
* [[Absolute Doom]]
=== Level Packs ===
* Future campaign packs go here.
=== Assets & Textures ===
* Future asset packs go here.
== Community ==
=== Mods ===
* [[Ultimate Mortal Kombat DOOMXL]]
=== Level Packs ===
* Whatever Campaign 1
== Endorsed ==
=== Mods ===
* Endorsed mods go here.
=== Level Packs ===
* Endorsed level packs go here.
== Assets & Textures ==
These assets can be used in your own mods. Be sure to credit the original author. Note that 'in-house' assets created by the hardcoredoom team should not be listed here but rather in the 'Hardcore Originals' section above.
=== Graphics & Textures ===
* Place items here.
=== Music & Audio ===
* Place items here.
=== Weapons & Pickups ===
* Place items here.
=== Enemies & Monsters ===
* Place items here.
=== Props ===
* Place items here.
[[Category:Mods And Assets]]
cb120a0b6dcaecdf6f8166c8917b180059ce03a1
610
609
2025-11-14T13:22:47Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
User-created content is listed here. Keep in mind that this is a curated list; do not create pages for mods or content unless they meet a minimum quality threshold. Furthermore, only content for a [[Game Information|select list of games]] may be listed. Do not include games or mods for other titles such as Quake or Half-Life.
The following games are currently supported:
* Doom/Doom II/Final Doom
* Doom 64 (TCs & Remaster)
* Heretic
* Malefact (once released)
== Hardcore Originals ==
The official projects of hardcoredoom.com.
=== Mods ===
* [[Absolute Doom]]
=== Level Packs ===
* Future campaign packs go here.
=== Assets & Textures ===
* Future asset packs go here.
== Community ==
Mods created by the [[hardcoredoom]] community.
=== Mods ===
* [[Ultimate Mortal Kombat DOOMXL]]
=== Level Packs ===
* Whatever Campaign 1
== Endorsed ==
Third-party mods that were not created by the hardcoredoom community.
=== Mods ===
* Endorsed mods go here.
=== Level Packs ===
* Endorsed level packs go here.
=== Assets & Textures ===
* Endorsed asset packs go here
[[Category:Mods And Assets]]
d23c08d9450041814732ca33a557f749051e586d
611
610
2025-11-14T13:23:21Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
User-created content is listed here. Keep in mind that this is a curated list; do not create pages for mods or content unless they meet a minimum quality threshold. Furthermore, only content for a [[Game Information|select list of games]] may be listed. Do not include games or mods for other titles such as Quake or Half-Life.
The following games are currently supported:
* Doom/Doom II/Final Doom
* Doom 64 (TCs & Remaster)
* Heretic
* Malefact (once released)
== Hardcore Originals ==
The official projects of hardcoredoom.com.
=== Mods ===
* [[Absolute Doom]]
=== Level Packs ===
* Future campaign packs go here.
=== Assets & Textures ===
* Future asset packs go here.
== Community ==
Mods created by the [[hardcoredoom]] community.
=== Mods ===
* [[Ultimate Mortal Kombat DOOMXL]]
=== Level Packs ===
* Whatever Campaign 1
== Endorsed ==
Third-party mods that were not created by the hardcoredoom community.
=== Mods ===
* Endorsed mods go here.
=== Level Packs ===
* Endorsed level packs go here.
=== Assets & Textures ===
* Endorsed asset packs go here
[[Category:Mods And Assets]]
9feb3837bfe9a4705851f061ae3fa69aab03e7ad
Game Information
0
315
612
564
2025-11-14T13:23:48Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Relevant Doom engine games are listed on this page along with other game information.
== Games ==
=== Classic ===
The original classics from the 90s.
* [[Doom]]: Doom is a first person shooter action game created by Id Software and published in 1993.
* [[Heretic]]: A fantasy version of Doom.
=== Classic ===
Neo-boomer shooters created using a modified version of the Doom engine (e.g. UZDoom/GZDoom).
* [[Malefact]]: Malefact is a fantasy horror boomer shooter in development by GoreMaxxed Productions. The project is led by hardcore_gamer, with a demo version expected to release in Q1 2026. The game is built on the UZDoom engine.
== Actors & Assets ==
To view information about specific actors in individual games or mods, visit the pages below.
* [[Weapons]]: Weapons usable by the player.
* [[Items]]: Pickups & Power-ups the player can collect.
* [[Enemies]]: Enemies the player faces.
[[Category:Game Information]]
d1a4ccd486744d01d092dd922cb1fb3f74fe8801
Tutorials And Guides
0
317
613
570
2025-11-14T13:23:56Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
If you're a newcomer to modding or mapping using the UZDoom engine, this page contains useful resources for getting started.
== Guides & Tutorials ==
Guides created by our own community.
=== [[Malefact Mapping Tutorials]] ===
A level design guide for Malefact, geared toward newcomers to the game, written by the game's lead developer and level designer.
== Third Party Guides & Tutorials ==
=== Level Editing & Scripting ===
Guides created outside our community.
Note: While Doom Builder 2 is considered defunct in favor of Ultimate Doom Builder, most general functionality carries over. Just keep in mind that there may be some minor differences when watching older tutorial videos.
* [[https://youtube.com/playlist?list=PLQrQ055Wd7p77pBCmTQT6kW-K8Plmw_D-&si=DHhSQQcJ3iT16Czj| Ultimate Doombuilder Tutorials by Bridgeburner]]
* [[https://youtube.com/playlist?list=PLCE835098C82D8F24&si=c3VJyO7010AW0_2Z| Doombuilder 2 Tutorials by Chubzdoomer]]
* [[https://youtube.com/playlist?list=PLuDCrjOek9njK8hXkZmTxaU8PWzjzGql7&si=5R5NcyAeidk4GPjz| ZDoom ACS Scripting Tutorials by Chubzdoomer]]
* [[https://youtube.com/playlist?list=PL-36gm0W-VKl89pw9lUfF36TJ28bjrNUn&si=H8rclwM8wWbkBw8g| GZDoom Zscript Tutorials by DavidXNewton]]
== Misc/Other ==
* [[Wiki Syntax]]
[[Category:Tutorials And Guides]]
e9bc49492b1cbaf789cb985e216ae0d8e2994246
Boom Tropes
0
318
614
560
2025-11-14T13:24:04Z
MasterOfDisillusionment
431405
wikitext
text/x-wiki
Boom Tropes is an archive of recurring design elements, level setups, and architecture patterns found in classic FPS games and their mods. Besides being fun to browse, the tropes can also be a potentially useful source of inspiration for level designers since these tropes can be easily incorporated into their own designs.
== Encounter Design ==
Any tropes related to monster placement and combat setups go here.
* [[Idle Monster]]: A monster that remains inactive until it sees the player.
* [[Door Ambush]]: A monster that waits behind a door.
* [[Lift Ambush]]: A monster that waits on top of a platform or lift.
* [[Turret Monster]]: A projectile or hitscan monster that’s nested onto an elevated space or platform.
* [[Alerted Monster]]: Like an idle monster except it’s not deaf; it can be awoken by player’s gunfire without a direct line of sight.
* [[Dropwall Trap]]: A wall or section of a wall that lowers vertically to reveal a new area with an enemy or multiple enemies.
== Area Layouts ==
Tropes related to map design and layouts are listed here. ''Note: This section is not for detailing techniques, which have their own section below.''
* [[Hub Area]]: An area with three or more entry points.
* [[Dead-end Area]]: A area with a single entry point.
* [[Corridor Area]]: An area with two entry points.
* [[Coupler Area]]: An area used to bridge two adjacent areas.
* [[Maze Area]]: An area consisting of a maze the player must navigate through.
* [[Perimeter Area]]: An area that borders and or envelopes another area or areas, often used to represent exterior locations.
== Item Tropes ==
Tropes related to items, power-ups, and their use in mods and maps are listed here.
* [[Pickup Trap]]: A pickup triggers a trap when collected.
* [[Taunting Pickup]]: A pickup item, often a power-up or weapon, taunts the player with its presence but seems unreachable at first glance.
== Doors, Lifts, and Teleporters ==
Tropes involving interactive elements, like doors, switches, teleporters, etc, are listed here.
* [[Teleporter]]: A linedef that teleports the player or monster someplace else when crossed.
* [[Door]]: An interactive door that the player and or monsters can open.
* [[Switch Door]]: A door that can only be opened with a switch.
* [[Timed Door]]: A door that stays open for a predetermined period before closing and requiring reactivation.
* [[Shootable Door]]: A door that only opens when dealt damage by the player's weapons or a stray projectile/attack.
== Themes & Locations ==
Common settings and locations of levels. Note that 'theme' is considered distinct from 'location'; a military outpost can belong to the Military Theme, but not every map with a military theme necessarily takes place on an outpost.
=== Themes ===
* [[Military Theme]]: Military locations like army bases.
* [[Industrial Theme]]: Industrial environments like warehouses and factories.
* [[Urban Theme]]: City and urban environments.
* [[Technology Theme]]: High-tech and science fiction esque settings like research labs and spaceships.
* [[Hell Theme]]: Locations set in hell or hellish environments.
=== Locations - Military ===
* [[Army Base Level]]: Military bases and outposts/garrisons.
* [[Warzone Level]]: Levels taking place in war-torn locations and battlefields.
=== Locations - Industrial ===
* [[Warehouse Level]]: Warehouse complex and storage facilities.
* [[Train Level]]: A (usually) liner train level.
=== Locations - Urban ===
* [[Downtown Level]]: City downtown area.
* [[Suburb Level]]: City suburb area.
=== Locations - Technology ===
* [[Spaceship Level]]: A level taking place on a spaceship.
* [[Lab Level]]
=== Locations - Hell ===
* [[Hell Gate Level]]: A level representing the literal gates of hell.
* [[River Styx Level]]: The river Styx from Greek mythology.
== Detailing ==
Tropes related to the process of adding visual elements that enhance realism and atmosphere are listed here.
* [[Decorative Door Detail]]: A purely decorative door that cannot be opened.
* [[Indented section Detail]]: A section of wall or surface is pushed inward to create depth and visual interest.
* [[Protruding section Detail]]: A section of wall or surface is pushed outward to create depth and visual interest.
* [[Greeble Detail]]: Small-scale decorative geometry, texture work, and props used to make environments look more intricate and believable.
* [[Crates And Barrels Detail]]: Storage containers, usually made from wood or alloy.
[[Category:Boom Tropes]]
bf2d3952f66cf663f4c7fd897f5da4b5d98002b3